带你入门Laravel 5.1
前言:
Laravel 是当下最火的 PHP 开发框架。它以编码风格优雅著称,每行代码都非常简洁,富有表达力,并且拥有强大的组件开发生态,可以帮助你快速搭建完美的大型网络应用。
本课程将从环境配置开始,对路由、控制器等知识点进行讲解和实践,力求让学习者通过自己做实验来更快上手 Laravel 开发,也能在开发的过程中体会 Laravel 的艺术感。而且最后还将通过30分钟教你搭建一个迷你博客,对Laravel基础知识进行回顾通过实践加深记忆并巩固学习。
好了,废话不多说了,直接看教程相关介绍:
实验列表:
Paste_Image.png第一节:开启 Laravel 之旅以及环境配置
一、Laravel 介绍
Laravel 是一套简洁、优雅的 PHP Web 开发框架,采用了 MVC 的架构模式。它可以让你从杂乱的代码中解脱出来,帮你构建一个完美的网络 APP。
Laravel 的代码简洁、富于表达力,可以说是为 WEB 艺术家创造的 PHP 框架,在 2011 年 6 月正式发布了首个版本。
Laravel 结合了 PHP 强大的扩展包(Composer)系统与 PHP 开发者广大的受众群,具备快速开发的特点,这些优势让 Laravel 在发布之后短短几年就得以飞速发展,成为近两年最火热的PHP框架。我们可以通过下面几张图片大致感受一下。
登录百度指数网站,对比几个常见 PHP 框架,见图1-1,可以看出,Laravel 框架正在国内快速被大家熟知和使用,关注度也呈现快速上升趋势。
图1-1 :百度指数常见PHP框架比较
图1-1 :百度指数常见PHP框架比较而在国外,Laravel 框架更是炙手可热,登录 Google Trends 网站,对比几个常见PHP框架,见图1-2,可以看出,Laravel 的增长速度远超其他框架。
图1-2 Google Trends 常见PHP框架比较
图1-2 Google Trends 常见PHP框架比较除此之外,Laravel 在国内的学习资料和社区也越来越多,你可以很轻松的在网上找到各种 Laravel 中文学习教程。
如果你还在纠结应该选择哪一个框架来进行开发的话,Laravel 绝对是不二之选,Laravel 快速开发的特点以及背后丰富的扩展可以让你把更多的精力放在创造上而不是一味的重复。
作为工匠,我更愿意把我有限的生命用在作品上,而不是对工具的无止境的学习上。
二、版本选择
如果你已经决定开始学习 Laravel,你需要了解 Laravel 的版本发布历史,以及如何选择一个版本来进行开发。
Laravel 的版本分为 LTS 版本和一般版本,LTS 版本是 Laravel 能提供的维护时间最长的发行版,包括两年的 BUG 修复及三年的安全性修复,一般版本会提供六个月的 BUG 修复及一年的安全性修复。
截止至本教程发布,最新的 LTS 版本是 5.1,最新的一般版本是 5.3,下一个LTS版本是 5.5,计划将于2017年的6月发布,所以本教程选择 LTS 版本 5.1 来进行学习,在下一个 LTS 版本发布前,你都可以完全投身于 5.1 版本的学习中。
三、教程介绍
本教程将从环境配置开始,将路由,控制器等基本知识点逐个在后续的实验中进行讲解和实践,力求让学习者通过自己做实验来更快上手 Laravel 开发,也能在开发的过程中体会 Laravel 的艺术感。
通过本基础教程,你将学到如何用 Lavavel 实现网站中的基础功能和基本操作,这些知识将为你未来的进一步开发奠定下坚实的基础。
四、适用用户
由于 Laravel 较高的学习门槛,本基础教程可能并不适用于零基础的开发人员。
本教程需要你至少对 HTML、CSS、PHP 相关知识有基础的了解,如果你对这些基础知识不是很了解,这里推荐的几个基础教程:
建议花一些时间将上述课程进行一定的学习,不要求完全掌握,只需要对相应的基础知识有一个大概的了解即可。
五、常用链接整理
六、环境配置(实验楼已经配置好开发环境可直接学习,本地搭建教程仅供大家参考)
以下内容是在任意一台主机上布置 Laravel 开发环境的教程,在实验楼的在线环境已经装好了 Laravel 的环境,所以直接跳过环境配置部分内容也不影响后续的学习,按照本教程可以在自己的电脑上布置 Laravel 开发环境。
1.开始
Laravel 对环境有一定的要求:
- PHP >= 5.5.9
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
说到环境,就不得不说 Homestead,Homestead 是 Laravel 官方预封装的一套开发环境。
在 Laravel 的开发中,强烈建议使用 Homestead,不论是一个人开发项目,还是团队开发。
2.Homestead
想了解 Homestead 是什么,首先要介绍一下 VirtualBox 和 Vagrant。
VitrualBox 是一款非常强大的免费虚拟机软件,使用者可以在 VitrualBox 上安装并运行 Linux、Windows、Mac OS X 等操作系统,类似的软件还有 VMware 等,对虚拟机不熟悉的小伙伴可以稍微补习一下相关知识,这里不多做介绍。
接下来介绍 Vagrant,有过开发经验的同学可能会有这样的经历,每次开始一个新的项目,必然要先搭建开发环境,不同的开发者可能习惯使用不同的系统,有人用 windows,有人用 mac,有人用 linux,在搭建环境的过程中又有可能会遇到各种 BUG 各种坑,代码还没开始写,搭环境就先用掉几天时间..很是头疼,于是,为了解决这个问题,Vagrant 应运而生...
Vagrant 是一个用于创建和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。
Vagrant 可以将一整套虚拟环境封装在一个 box 内,这样只要所有人都使用这个 box,大家的开发环境就实现统一了!而 Homestead 就是这样一个 Laravel 官方预装的适合 Laravel 开发的 Vagrant box 。
Homestead 可以在 Windows、Mac 或 Linux 系统上面运行,里面包含了 Nginx Web 服务器、PHP 5.6、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时所需要用到的各种软件。
附注: 如果你是 Windows 用户,你可能需要启用硬件虚拟化(VT-x)。这通常需要通过 BIOS 来启用它。
Homestead 内置软件列表:
- Ubuntu 14.04
- Git
- PHP 5.6 / 7.0
- Xdebug
- HHVM
- Nginx
- MySQL
- Sqlite3
- Postgres
- Composer
- Node(附带了 PM2、Bower、Grunt 与 Gulp)
- Redis
- Memcached (仅限 PHP 5.x)
- Beanstalkd
这里提到了很多的专有名词,你不一定非要弄懂每个是什么意思,可以在以后的实践和摸索中慢慢的渗透和学习!
3.Homestead 安装
Homestead的安装大概分为以下步骤:
注意:实验楼为了最大程度降低学习门槛,已经在在线环境中安装好了 Laravel 运行需要的环境 ,大家在做实验的过程中可以主要将重心先放在学习代码上,Homestead 的安装过程大致了解一下就好,以后在自己的系统上进行 Laravel 开发的时候可以再回过头来学习。
- VirtualBox 安装
- Vagrant 安装
- 添加 Homestead box 到 vagrant
- 安装 Homestead
- 配置 Homestead.yaml 文件
3.1 VirtualBox 安装
访问 VirtualBox 官网,下载当前操作系统相对应的安装包。
下载完成后,双击打开按照提示完成安装即可。
3.2 Vagrant 安装
访问 Vagrant 官网,下载当前操作系统相对应的安装包。
下载完成后,双击打开按照提示完成安装即可。
3.3 添加 Homestead box 到 vagrant
首先打开命令行
注意:Windows 用户请不要使用系统自带的命令行,可以使用 cmder 或 Git 的 Git-bash。
进入 ~ 目录(该目录在 C:\Users\你的计算机用户名)
cd ~
输入添加 Homestead box 的指令:
vagrant box add laravel/homestead
如果上面的命令运行失败,代表你使用的可能是旧版的 Vagrant,需要在命令行后补上下载包的完整 URL:
vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead
box 的下载会花费你一点时间,具体的下载时长由网络速度决定,由于国内网络的原因,box 安装有可能会失败,这时只能通过手动来添加 box 了。
手动添加的话推荐这篇文章:如何在 Windows 上安装 Laravel Homestead。
4. 安装Homestead
添加完 Homestead box 之后还需要进行一些配置来完成 Homestead 的安装。
首先,请确定你的电脑上安装了Git
-
1)Windows 系统直接下载安装 Git for Windows
-
2)Mac 用户可通过安装 Xcode 命令行来快速安装 Git:
xcode-select --install
- 3)Linux 系统使用以下命令快速安装:
sudo yum install git
sudo apt-get install git //Debian Linux
然后,打开命令行,进入~目录
cd ~
通过克隆代码仓库的方式来安装 Homestead:
git clone https://github.com/laravel/homestead.git Homestead
克隆完 Homestead 的代码仓库后,会生成一个Homestead文件夹,进入该目录
cd ~/Homestead
执行 bash init.sh
命令来创建 Homestead.yaml
配置文件,Homestead.yaml
文件将会被放置在你的~/.homestead
目录中
bash init.sh
最后,我们需要用编辑器打开 Homestead.yaml
文件对 Homestead 进行配置。
编辑器选择:不要用 windows 的记事本作为代码编辑器,这里推荐一些常用编辑器:
- 轻量编辑器:Atom、Sublime、Notepad++
- 集成开发环境编辑器:PHPstorm
5. 设置 Homestead.yaml
文件
用编辑打开~/.homestead/Homestead.yaml
文件。
Homestead.yaml
中的初始代码如下:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
databases:
- homestead
variables:
- key: APP_ENV
value: local
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 93000
# to: 9300
# - send: 7777
# to: 777
# protocol: udp
下面我们对该文件中的代码逐个进行分析配置:
最上面是对虚拟机的 ip,内存,CPU,虚拟机的默认提供者的配置,这里不需要修改。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
Homestead 需要用 ssh 方式连接虚拟机,ssh 连接需要设置秘钥,可以看出默认的 key 应该是放在~/.ssh
文件夹下的,这里也不需要做修改。
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
ssh key 需要我们手动生成,如果你之前已经用过ssh连接,这一步可以跳过。
通过运行下面命令来生成 ssh key:
ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.
出现下面提示信息时,按回车键将 SSH Key 保存到默认位置:
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
为 SSH Key 设置密码,不输入则默认为空密码:
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
继续来到 Homestead.yaml 文件的配置,下面的 folders 是设置代码文件位置和虚拟机中共享文件的位置的。
folders:
- map: ~/Code
to: /home/vagrant/Code
比如我们修改成如下设置,我们假设 D 盘有一个叫做 laravel 的文件夹,专门用来存放 laravel 的项目。
folders:
- map: D:/laravel
to: /home/vagrant/Code
这样设置之后 D 盘的 laravel 文件夹就和 虚拟机中的这个Code 文件夹共享了。
然后是映射域名的配置,如下面 sites 配置所示,将 homestead.app 映射到一个 Laravel 项目的 public 文件夹下,通过增加这行配置之后,如果你的 Code 文件夹中有一个叫 Laravel 的项目,则可以通过 http://homestead.app 来访问该 Laravel 应用。
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
除此之外,你还需要将这个域名添加到 hosts 文件中,Windows 系统下该文件放在 C:\Windows\System32\drivers\etc\hosts
,Mac 或 Linux 系统 host 文件放在 /etc/hosts 或者 /private/etc/hosts 文件夹下,添加方式:打开 hosts 文件,在最底下添加如下代码:
192.168.10.10 homestead.app
然后是数据库设置:
databases:
- homestead
数据库的设置和 sites 的设置是对应的,比如你有两个项目,对应设置应该像这样:
sites:
- map: myweb.app
to: /home/vagrant/Code/myweb/public
- map: myweb2.app
to: /home/vagrant/Code/myweb2/public
databases:
- myweb
- myweb2
最后,如果你需要定义一些在虚拟机上可以使用的自定义变量,则可以在 variables 中进行定义。
variables:
- key: APP_ENV
value: local
综上,一个设置好的 Homestead.yaml 文件代码示例:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: D:\laravel
to: /home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/Code/laravel/public
- map: myweb.app
to: /home/vagrant/Code/myweb/public
- map: myweb2.app
to: /home/vagrant/Code/myweb2/public
databases:
- homestead
- myweb
- myweb2
variables:
- key: APP_ENV
value: local
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 93000
# to: 9300
# - send: 7777
# to: 777
# protocol: udp
6.启动虚拟机
进入 Homestead 目录:
cd ~/Homestead
启动虚拟机:
vagrant up
虚拟机启动后,可以通过 ssh 登录虚拟机进行操作:
vagrant ssh
除此之外,每次更新 Homestead.yaml 文件夹后,需要执行下面指令让新的配置生效:
vagrant provision
最后,关闭虚拟机可以执行下面指令:
vagrant halt
7.下载 Laravel 源代码
至此,我们的环境就算配置完全了,我们只需要再下载一份 Laravel 源代码就可以进行开发了。
下载源代码,我们使用 composer
Composer 是 PHP 中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
Composer 在 Homestead 中已经安装好了,我们可以直接使用。
首先我们需要启动虚拟机,并登陆虚拟机:
cd ~/Homestead
vagrant up
vagrant ssh
然后,进入Code目录,并利用 composer 来创建一个 Laravel 应用:
cd Code
composer create-project laravel/laravel Laravel --prefer-dist "5.1.*"
由于国内网络原因,有时候 Composer 安装会花费很多时间,甚至出错。
这里推荐使用 Packagist / Composer 中国全量镜像 来加速 Composer 的操作。
我们只需要修改 Composer 的全局配置文件即可:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
如果没有问题的话,打开浏览器,访问 http://homestead.app 你能看到如下图所示界面,这是 Laravel 为我们生成默认界面。
此处输入图片的描述至此,我们的 Laravel 项目就创建好了。
说明:
想要查看后学章节的内容,点击【Laravel 5.1 基础教程】即可马上在线查看并学习了,更有在线开发环境可以随时跟着动手操作学习。