初识Laravel框架
学习目标
了解Laravel框架,能够说出Laravel框架的特点
掌握开发环境的搭建,能够配置和部署Web服务器 MAMP PRO
掌握Laravel框架的安装,能够创建和运行Laravel项目
了解Laravel框架的目录结构,能够说出每个目录的作用
章节概述
在实际开发中,使用框架可以使开发者节省在底层代码花费的时间,将主要精力放在业务逻辑上,同时还能保证项目的可升级性和可维护性。市面上常见的PHP框架有很多,本书选择市面上非常流行的Laravel框架进行讲解。本章主要对Laravel框架的概念和开发环境的搭建等基础知识进行详细讲解。
目录
什么是Laravel框架
1.1什么是Laravel框架
先定一个小目标:
了解什么是Laravel框架,能够说出Laravel框架的概念与特点
什么是Laravel框架
Laravel是泰勒·奥特威尔(Taylor Otwell)使用PHP语言开发的一款开源的Web应用框架。
于2011年6月首次发布,发布以来备受PHP开发人员的喜爱,用户的增长速度十分迅猛。
Laravel是一套简洁、优雅的框架,具有简洁且富于表达性的语法。
Laravel秉承“Don't Repeat Yourself”(不要重复你自己)的理念,提倡代码的重用。
Laravel为开发大型应用提供了强大的功能,
包括自动验证、路由、Session、缓存、数据库迁移等。
Laravel框架的特点:index.html
1.对外只提供一个入口/public/index.php,让框架统一管理项目的所有的请求。
2.采用MVC设计模式,帮助团队更好地协同开发,为项目后期的维护提供方便。
3.支持Composer依赖管理工具,可以为项目自动安装依赖。(螺丝刀)
4.采用ORM方式操作数据库,支持AR模式。
5.注重代码的模块化和可扩展性,
开发者可以通过Laravel组件库Packalyst找到想要添加的组件。
6.自带各种方便的服务,提供开箱即用的用户身份验证功能和缓存系统,
可以快速开发出相应的功能。
7.具有路由功能,Laravel框架通过路由分发每一个请求,并可以对请求进行分组。
8.提供Artisan命令行工具,帮助开发人员将手动的工作自动化。
多学一招:MVC设计模式
MVC是Xerox PRAC(施乐帕克研究中心)在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式。到目前为止,MVC已经成为一种被广泛使用的软件开发模式。
MVC采用了人类分工协作的思维方法,将程序中的功能实现、数据处理和界面显示相分离,从而在开发复杂的应用程序时,开发者可以专注于其中的某个方面,进而提高开发效率和项目质量,便于代码的维护。
MVC的作用:
l模型(Model),负责数据操作,主要用来操作数据库。通常情况下,一个模型对应一张数据表。
l视图(View),负责渲染视图,主要用于展示页面。
l控制器(Controller),负责所有业务的处理。通常情况下,一个控制器只处理一类业务。例如,用户控制器实现用户注册登录功能;订单控制器实现订单的生成等功能。
搭建开发环境
1.2.1 Apache安装与配置
掌握Apache的安装与配置,能够独立完成Apache的安装与配置
安装Apache的基本步骤:
获取安装包解压
下载安装包
在Apache Lounge网站中获取编译的版本,在网站中找到httpd-2.4.38-win32-VC15.zip压缩包进行下载。
解压安装包
将压缩包里面的Apache24目录中的文件解压到C:\web\apache2.4。
安装运行库
Apache安装包使用Microsoft Visual C++ 2017运行库进行编译,在安装Apache前需要先在Windows系统中安装此运行库。
配置****Apache
配置安装路径
在conf\httpd.conf配置正确的安装路径:
`Define SRVROOT "C:\web\apache2.4"`
配置服务器域名
在conf\httpd.conf中去掉服务器域名的注释:
`ServerName www.example.com:80`
安装
安装Apache命令:
httpd -k install -n Apache2.4
卸载
卸载Apache命令:
httpd -k uninstall-n Apache2.4
启动Apache服务
选择Start启动服务,当图标由红色变为绿色表示启动成功。
访问测试
访问Apache默认站点
通过浏览器访问http://localhost,如果显示“It works !”说明Apache正常运行。
1.2.2 PHP安装与配置
掌握PHP的安装与配置,能够独立完成PHP的安装与配置
安装PHP的基本步骤
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRSMMKO4-1687698884144)(C:\Users\Huangxiaolei\AppData\Roaming\Typora\typora-user-images\image-20230625202837120.png)]
获取并解压php
下载安装包
选择PHP 7.2.15、Thread Safe版本下载。
解压
将压缩包解压,保存到C:\web\php7.2目录中。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9ecP6JI-1687698884144)(C:\Users\Huangxiaolei\AppData\Roaming\Typora\typora-user-images\image-20230625202918766.png)]
创建配置文件
创建php.ini文件
在PHP安装目录下复制php.ini-development文件,并命名为php.ini,作为PHP的配置文件。
在Apache中引入PHP
LoadModule php7_module "C:/web/php7.2/php7apache2_4.dll"
<FilesMatch "\.php$">
setHandler application/x-httpd-php
#修改Apache配置文件httpd.conf引入PHP模块。
PHPIniDir "C:/web/php7.2"
LoadFile "C:/web/php7.2/libssh2.dll"
测试安装结果
在C:\web\apache2.4\htdocs下创建test.php文件,查看PHP状态信息。
<?php
phpinfo();
?>
开启常用扩展
修改PHP扩展文件保存路径
在php.ini中搜索文本extension_dir,去掉注释,修改成正确路径。
extension_dir = "c:/web/php7.2/ext"
开启常用PHP扩展
extension=curl
extension=gd2
extension=openssl
配置索引页
在Apache配置文件conf\httpd.conf中搜索DirectoryIndex,配置索引页。
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
1.2.3 MySQL****安装与配置
掌握MySQL的安装与配置,能够独立完成MySQL的安装与配置
安装MySQL的基本步骤:
安装****MySQL
获取并解压****MySQL
获取社区版压缩包mysql-5.7.24-win32.zip
将其解压保存到C:\web\mysql5.7目录中。
安装****MySQL
输入以下命令开始安装
cd C:\web\mysql5.7\bin
mysqld -install mysql5.7
创建配置文件
创建****my.ini
在文件中指定安装目录(basedir)、数据库文件保存目录(datadir)和端口号(port)。
[mysqld]
basedir=C:/web/mysql5.7
datadir=C:/web/mysql5.7/data
port=3306
初始化数据库
执行命令初始化数据库
初始化数据库命令如下。
mysqld --initialize-insecure
•–initialize 表示初始化数据库。
•-insecure 表示忽略安全性。当省略“-insecure”时,MySQL 将自动为默认用户root 生成一个随机的复杂密码,而加上“-insecure”时,默认用户root 的密码为空。
自动生成的密码输入比较麻烦,因此这里选择忽略安全性。
启动****MySQL
启动MySQL服务
启动MySQL服务的命令如下。
net start mysql5.7
停止MySQL服务
停止MySQL服务的命令如下。
net stop mysql5.7
登录****MySQL
登录MySQL服务器
登录MySQL服务器命令如下。
mysql -u root
设置密码
设置root用户的密码
登录MySQL后,将root用户的密码设为123456。
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
1.2.4 配置虚拟主机
掌握虚拟主机的配置方法,能够独立完成虚拟主机的配置
配置虚拟主机基本步骤:
配置域名
修改hosts文件
在hosts文件的最底部添加记录
127.0.0.1 laravel.test
hosts文件用于配置域名与IP地址之间的解析关系,当请求域名在hosts文件中存在解析记录时,可直接使用该记录,只有当不存在解析记录时,才通过DNS域名解析服务器进行解析。
启用辅配置文件
修改****httpd.conf
启用虚拟主机辅配置文件,找到如下配置,删除前面的“#”即可启用。
Include conf/extra/httpd-vhosts.conf
配置虚拟主机
在conf\extra\httpd-vhosts.conf中添加虚拟主机。
<VirtualHost *:80>
DocumentRoot "c:/web/apache2.4/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/web/www/laravel/public"
ServerName laravel.test
</VirtualHost>
<Directory "c:/web/www">
Options -indexes
AllowOverride All
Require local
</Directory>
测试域名
创建C:\web\www\laravel\public目录,在目录中编写一个内容为Laravel的index.html。
1.2.5安装Composer依赖管理工具
掌握Composer的安装方法,能够独立完成Composer的安装
Composer是PHP用来管理依赖(dependency)关系的工具。
只需在项目中声明依赖的外部工具库,Composer会自动安装这些依赖的库文件。
Windows下的安装方式:
1.使用安装程序进行安装
2.使用命令行安装
Composer的安装过程:
1.是否使用开发者模式(Developer mode)。若选中此项,则不提供卸载功能,推荐不选中。
2.选择PHP命令行程序。单击“Browse…”按钮浏览文件,选择C:\web\php7.2\php.exe即可。
3.更新php.ini。若当前php.ini不符合Composer的环境需求,安装程序会提示修改php.ini,并创建备份文件。若php.ini符合需求,则该步骤会自动跳过。
4.填写代理服务器。无需使用,留空即可。
Composer的安装结果:
在命令行窗口输入composer命令测试是否安装成功。
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
123456
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.10.9 2020-07-16 12:57:00
……(由于输出结果很长,此处省略)
1.2.6安装Visual Studio Code编辑器
掌握Visual Studio Code编辑器的安装方法,能够独立完成编辑器的安装
Visual Studio Code(简称VS Code)是微软公司开发的一款代码编辑器,具有免费、开源、轻量级、高性能、跨平台等特点。
安装编辑器:在官方网站获取软件的安装包。
设置主题:默认主题为黑色背景,若更换主题,单击左下角齿轮形状的Manage(管理)按钮,在弹出的菜单中选择Color Theme(颜色主题),选择Light+ (default light)。
设置语言:默认语言为英文,若切换为中文,单击左边栏的第5个图标按钮Extensions(扩展),然后输入关键词chinese即可找到中文语言扩展,单击Install按钮安装。
编写代码:单击“打开文件夹…”,选择C:\web\www\laravel目录,在左侧“资源管理器”中选择public\index.html进行编辑。
安装Laravel框架
1.3.1开启必要的扩展
了解学习Laravel框架需要开启哪些必要的扩展,能够说出这些扩展的作用
在安装Laravel框架前,需要确保在php.ini中打开必要的扩展:
extension=openssl
extension=pdo_mysql
extension=mbstring
运行Laravel框架还需要PHP内建扩展的支持,默认已经开启,使用php -m命令检查是否已经开启:
bcmath
ctype
json
tokenizer
xml
1.3.2使用Composer安装Laravel框架
掌握如何使用Composer安装Laravel框架,能够独立完成Laravel框架的安装
Laravel5.8框架的安装方式:
1.通过 Laravel安装器进行安装。
2.通过Composer安装。
Laravel框架安装命令:
composer create-project --prefer-dist laravel/laravel zsproject
5.8.*
create-project表示创建项目
--prefer-dist表示以压缩的方式下载
laravel/laravel是框架在Composer的默认包仓库网站中的包名
laravel表示将框架下载到laravel目录中
5.8.*是版本号,表示安装5.8系列的最新版本
Linux 命令含义
pwd 查看当前目录
cd 切换目录
ls 查看当前目录中的文件
clear 清除屏幕内容
进入响应的文件目录
composer create-project --prefer-dist laravel/laravel kjp 5.8.*
1 项目文件 index.php “这是苹果系统的第一个程序”
2 通过mamp 创建虚拟主机 xixi.com
3 打开浏览器 验证虚拟主机 xixi.com
1 项目文件 Composer laravel 2 通过mamp 创建虚拟主机 kj.com public
3 打开浏览器 验证虚拟主机 kj.com
由于Composer的资源库packagist是国外网站,在国内访问速度会很慢,可以从“Packagist 中国全量镜像”获取缓存数据,具体命令如下:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer create-project --prefer-dist laravel/laravel kjp 5.8.*
Laravel安装成功效果图:
访问Laravel框架:
更新Laravel框架命令:
composer update laravel/framework
上述命令执行后,会更新框架至最新版本。
更新Laravel框架命令:
composer update laravel/framework
上述命令执行后,会更新框架至最新版本。
Laravel框架的目录结构
了解Laravel框架的目录结构,能够说出每个目录的作用
Laravel框架的一级目录:
目录 | 作用 |
---|---|
app | 应用目录,保存项目中的控制器C 、模型M等 |
bootstrap | 保存框架启动的相关文件 |
config | 配置文件目录 |
database | 数据库迁移文件及数据填充文件 |
public | 应用入口文件index.php和前端资源文件(如CSS、JavaScript等) |
resources | 存放视图文件、语言包和未编译的前端资源文件 V |
routes | 存放应用中定义的所有路由 |
storage | 存放编译后的模板、Session文件、缓存文件、日志文件等 |
tests | 自动化测试文件 |
vendor | 存放通过Composer加载的依赖 |
Laravel框架常用的子目录和文件:
类型 | 路径 | 作用 |
---|---|---|
目录 | app\Http | 存放HTTP请求相关的文件 |
目录 | app\Http\Controllers | 存放控制器文件 |
目录 | app\Http\Controllers\Auth | Auth模块的控制器目录 |
文件 | app\Http\Controllers\Controller.php | 控制器的基类文件 |
目录 | app\Http\Middleware | 中间件目录 |
文件 | app\User.php | User模型文件 |
文件 | bootstrap\autoload.php | 自动加载文件 |
文件 | config\app.php | 全局配置文件 |
文件 | config\auth.php | Auth模块的配置文件 |
文件 | config\database.php | 数据库配置文件 |
文件 | config\filesystem.php | 文件系统的配置文件 |
目录 | database\factories | 存放工厂模式的数据填充文件 |
类型 | 路径 | 作用 |
---|---|---|
目录 | database\migrations | 存放数据库迁移文件 |
目录 | database\seeds | 存放数据填充器文件 |
目录 | resources\lang | 存放语言包文件 |
目录 | resources\views | 存放视图文件 |
文件 | routes\web.php | 定义路由的文件 |
目录 | storage\app | 存放用户上传的文件 |
目录 | storage\framework | 存放与框架自身相关的文件 |
目录 | storage\logs | 存放日志文件 |
文件 | public\index.php | 入口文件 |
文件 | .env | 环境变量配置文件 |
文件 | artisan | 脚手架文件 |
文件 | composer.json | Composer依赖包配置文件 |
本章小节
本章先介绍了什么是Laravel框架;然后,为了确保读者的开发环境与本书一致,讲解了开发环境的搭建步骤,完成了Apache、PHP和MySQL的安装与配置、虚拟主机的配置,以及Composer依赖管理工具和Visual Studio Code编辑器的安装;最后,讲解了如何安装Laravel框架,并对Laravel框架的目录结构进行了简要介绍,为读者后续深入学习Laravel框架做了铺垫。