Laravel 是一个基于 PHP 的开源 web 应用程序框架,由 Taylor Otwell 创建并于 2011 年首次发布。它遵循 MVC(模型-视图-控制器)设计模式,旨在帮助开发者构建优雅、简洁且易于维护的 web 应用程序。
Laravel 以其简洁和易读的代码风格著称,使开发者能够以最小的代码编写出功能强大的应用程序。它的语法简洁明了,减少了开发者的工作量,并提高了代码的可读性和可维护性。
Laravel 提供了许多开箱即用的功能,如:
Laravel 拥有一个活跃且庞大的社区,丰富的文档和大量的第三方包和插件,使开发者可以轻松找到所需的资源和解决方案。官方还提供了详细的文档和教程,帮助新手快速上手。
Laravel 在开发过程中考虑到了许多常见的安全问题,如 SQL 注入、跨站请求伪造(CSRF)和跨站脚本攻击(XSS)。框架内置了各种工具和机制来保护应用程序的安全。
由于 Laravel 的模块化设计和灵活的架构,开发者可以根据需要轻松扩展和定制框架。无论是添加新功能还是集成第三方服务,Laravel 都提供了方便的接口和工具。
Laravel 的流行程度可以通过 GitHub 的 star 数等指标来衡量。截至 2024 年,Laravel 在 GitHub 上拥有超过 74k 个 stars,显示了其在开发者社区中的广泛接受度。
为了更好地理解 Laravel 的受欢迎程度,我们可以将其与其他流行的 web 框架进行比较:
通过与这些流行框架的对比,可以看出 Laravel 在 web 开发社区中拥有很高的知名度和广泛的使用基础。
以下步骤均在 Windows10 下完成
首先在学习 Laravel 之前,需要准备必要的环境,这次入门教程以最新的 Laravel 版本作为开发基础,也就是 Laravel11,它所需要的 PHP 版本环境最低要求是 >=8.2
, 不光是 PHP,Laravel 作为全栈框架还需要 Node 环境。本次课程还需要用 Nginx
和 Mysql
等环境。所以为了简化入门教程的带来的环境困恼,在这里我们选择了集成这些软件包的开发软件,当然如果你是使用其他的软件,例如 wamp
phpstudy
之类的也是可以的。
选择下面的版本安装
下载成功之后,按照提示直接点击下一步下一步安装即可。再 Laraegon 安装成功之后,你会看到软件界面
注意一定要记住 Laragon 安装的目录
看到下面的界面,就算是安装成功了
这一步非常重要,一定要设置好,因为 Laragon 会帮根据文件目录名称自动创建虚拟主机,就省的自己去设置虚拟域名之类的了。
点击右上角的设置
然后会看到下面的界面,根据自己实际的项目目录设置对应的值
如图,本人所有的项目都设置在 C 盘的 project
目录,所以在之后安装 Laravel 项目的时候,我都会在 c:\project
目录下安装
由于需要使用 PHP >= 8.2
版本,所以这里需要安装添加一个 8.2 版本,Laragon 添加 PHP 版本非常简单。可以到 PHP 软件包下载页面
找到对应版本,这里选择线程安全版本 VS16 x64 Thread Safe (2024-May-08 07:21:58)
点击 zip
下载 ⏬
下载之后,找到 Laragon 的安装目录,找到目录下的 bin\php
目录,然后复制上面下载好的 PHP zip 包到该目录
直接解压到当前目录即可,解压完成之后呢,找到 windows 右下角的图标,如下图所示
右击 Laragon 的图标,然后选择 PHP,如图,选择对应的 PHP 版本即可
然后再 Laragon 软件,点击启动 nginx
和 mysql
,那么项目所需要的环境就已经安装好了
找到编辑环境变量配置
,打开它
点击环境变量
找到 path
变量,然后点击它
然后再点击新建,在复制你自己本地的 PHP 版本解压后的目录地址 C:\software\laragon\bin\php\php-8.2.15-Win32-vs16-x64
(这是本人的本机目录) 粘贴到新建的变量中
打开 cmd 运行 php -v
, 你会看到下面的输出就代表成功了
这里我建议不要使用 windows 自带的命令行,使用 Laragon 带的 cmder
更好。
因为支持
Linux
相关命令,用起来更顺手。而且可以随意设置 PHP 版本,不需要设置环境变量(需要重新打开一个新的 cmder)。
打开 Laragon 软件界面,如下图,点击它
然后看到软件界面如下
第二步,安装 Composer。composer 安装比较简单,只需要到下载的页面即可
点击下面的所指下载安装
下载完成之后,双击 exe
,点击下一步下一步即可完成安装即可,安装完成之后呢,打开 cmder
,输入下面的命令
composer -v
安装成功之后,还需要设置镜像,目前据我所知,华为镜像更新的比较及时,可以复制下面的命令的设置镜像
composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/
设置好镜像之后,来安装初始化 Laravel 的初始化项目,首先我们安装 Laravel 项目安装器,使用下面的命令
composer global require laravel/installer
执行命令之后,等待安装完成即可。安装完成之后,使用下面的命令
Laravel -v
会有如图输出
Laravel 安装器安装完成之后,我们就可以来安装 Laravel 项目了。还记得上面说的设置工作目录吗?现在我要在 c:\project
目录下创建新项目。所以要求你也需要在你自己实际的设置的工作目录下,使用下面的命令来创建项目
laravel new lara-study
按照如图所示,选择对应的选项进行安装。这里我们尽量简单的来,不使用任何包装的包,尽量以原生框架开发
然后中途会有提示使用什么数据库驱动,如下图,教程使用 Mysql
,图片安装上选择了 yes,出现了报错,这个错误可以忽略。为了避免误解,请各位在安装时候输入
no
输入完成之后,继续等待它安装完成就行了。
完成之后,记得重启 Laragon,在自动创建虚拟主机,如下图,点击停止之后,再点击启动将会自动创建虚拟机
Laragon 会创建一个以目录名称命名的lara-study.test
虚拟域名,直接直接通过它访问项目。如果你出现如下图的报错,请不要担心,只是数据没有配置而已,等会下面来配置数据库信息
本教程使用的 Mysql 数据库作为驱动,所以数据库配置 Mysql 即可。找到右下角的 Laragon 软件,如图所示,修改 mysql 的 root 密码。
更换的时候必须停止 Mysql 服务,软件会有提示
设置本地的 root 密码,设置完成之后再启动就可以了。
下面使用你常用的编辑器打开项目,我这里使用的是 phpstorm
IDE 打开。找到 .env
文件,如下所示
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lara_study // 数据库名称
DB_USERNAME=root
DB_PASSWORD= // 配置你刚才设置 root 密码
配置完成之后,先不着急访问项目,我们先执行下一个命令,来创建数据库,因为现在链接了数据库,但没有 database 还没有设置,所以依然是报错的状态。在项目根目录,执行下面的命令
php artisan migrate
执行命令之后,会询问你是否创建数据库,直接回车或者填写 yes
自动创建数据库
执行成功之后,再来访问 lara-study.test
域名,哦豁!!!欢迎来到 Laravel 🎉 !!! Welcome !!!
app
目录app
目录包含您应用程序的核心代码。我们很快会更详细地探索这个目录;然而,您应用程序中几乎所有的类都将位于此目录。
app 目录就是我们实现功能开发的目录
bootstrap
目录bootstrap
目录包含引导框架的 app.php
文件。此目录还包含一个 cache
目录,其中包含用于性能优化的框架生成文件,例如路由和服务缓存文件。
config
目录顾名思义,config
目录包含您应用程序的所有配置文件。通读所有这些文件并熟悉您可用的所有选项是个好主意。
config 目录在之后开发过程中探索
database
目录database
目录包含您的数据库迁移、模型工厂和种子文件。如果您愿意,还可以使用此目录来保存 SQLite 数据库。
该目录主要实现创建数据库表的迁移文件
public
目录public
目录包含 index.php
文件,这是所有请求进入您应用程序的入口点,并配置自动加载。此目录还包含您的资产,如图像、JavaScript 和 CSS。
resources
目录resources
目录包含您的视图以及原始的、未编译的资产,如 CSS 或 JavaScript。
routes
目录routes
目录包含您应用程序的所有路由定义。默认情况下,Laravel 附带了两个路由文件:web.php
和 console.php
。
web.php
文件包含 Laravel 放置在 web
中间件组中的路由,该组提供会话状态、CSRF 保护和 cookie 加密。如果您的应用程序不提供无状态的、RESTful API,则您的所有路由很可能都将在 web.php
文件中定义。
console.php
文件是您可以定义所有基于闭包的控制台命令的地方。每个闭包都绑定到一个命令实例,允许简单地与每个命令的 IO 方法进行交互。尽管此文件不定义 HTTP 路由,它定义了基于控制台的应用程序入口点(路由)。您还可以在 console.php
文件中安排任务。
storage
目录storage
目录包含您的日志、编译的 Blade 模板、基于文件的会话、文件缓存以及框架生成的其他文件。此目录分为 app
、framework
和 logs
目录。app
目录可用于存储应用程序生成的任何文件。framework
目录用于存储框架生成的文件和缓存。最后,logs
目录包含您应用程序的日志文件。
storage/app/public
目录可用于存储用户生成的文件,如应该公开访问的个人资料头像。您应该在 public/storage
创建指向此目录的符号链接。您可以使用 php artisan storage:link
Artisan 命令创建链接。
tests
目录tests
目录包含您的自动化测试。默认情况下提供了 Pest 或 PHPUnit 单元测试和功能测试示例。每个测试类应以 Test
单词为后缀。您可以使用 /vendor/bin/pest
或 /vendor/bin/phpunit
命令运行测试。或者,如果您希望对测试结果有更详细和美观的表示,您可以使用 php artisan test
Artisan 命令运行测试。
vendor
目录vendor
目录包含您的 Composer 依赖项。
不必为这么多文件夹感到害怕,实际上在开发过程中与我们打交道的最多的就是
App
目录和routes
目录。至于其他目录,至少在现在可以放一放,没必要太关注。
那么到这里,关于 Laravel 初始化的过程已经全部讲解结束,还顺带了解了下 Laravel 的目录结构。当然在后续篇章中,我们不会立即讲解框架的一些概念,例如容器
,服务提供者
门面
之类的晦涩难懂的概念,因为这对于入门教程来说是不需要去深入了解的。但是如果涉及到相关的概念,教程也会指出来。教程的目的是尽快能让你使用框架开发出来一个项目,能够将自己的想法用 Laravel 表达出来。
后面案例代码将会标记其所在文件相对路径,以根目录为参考物。例如
// app/Htttp/HelloController
somecode