laravel
2. 入门
安装

了解 Laravel

Laravel 是一个具有富有表现力、优雅语法的 Web 应用程序框架。Web 框架为创建应用程序提供了一个结构和起点,使您能够专注于创建令人惊叹的东西,而我们则负责处理细节。

Laravel 努力在提供强大功能的同时提供出色的开发人员体验,例如全面的依赖注入、富有表现力的数据库抽象层、队列和计划任务、单元和集成测试等。

无论您是 PHP Web 框架的新手还是具有多年经验,Laravel 都是一个可以与您一起成长的框架。我们将帮助您作为 Web 开发人员迈出第一步,或者在您将专业知识提升到新水平时为您提供助力。我们迫不及待地想看看您构建的内容。

[!NOTE]
对 Laravel 不熟悉?查看 Laravel 训练营 (opens in a new tab),在我们引导您构建第一个 Laravel 应用程序的同时,亲身体验该框架。

为何选择 Laravel?

在构建 Web 应用程序时,您可以使用各种工具和框架。然而,我们相信 Laravel 是构建现代全栈 Web 应用程序的最佳选择。

一个渐进式框架

我们喜欢将 Laravel 称为“渐进式”框架。这意味着 Laravel 与您一起成长。如果您刚刚踏入 Web 开发领域,Laravel 丰富的文档库、指南和 视频教程 (opens in a new tab) 将帮助您在不感到不知所措的情况下学习基础知识。

如果您是高级开发人员,Laravel 为您提供了强大的工具,用于 依赖注入单元测试队列实时事件 等。Laravel 经过微调,适用于构建专业的 Web 应用程序,并准备好处理企业工作负载。

一个可扩展的框架

Laravel 具有令人难以置信的可扩展性。由于 PHP 的可扩展友好性以及 Laravel 对快速分布式缓存系统(如 Redis)的内置支持,使用 Laravel 进行水平扩展非常轻松。事实上,Laravel 应用程序已经可以轻松扩展到每月处理数亿个请求。

需要极端扩展?像 Laravel Vapor (opens in a new tab) 这样的平台允许您在 AWS 的最新无服务器技术上以几乎无限的规模运行您的 Laravel 应用程序。

一个社区框架

Laravel 结合了 PHP 生态系统中最好的包,提供了最强大且对开发人员友好的框架。此外,来自世界各地的数千名有才华的开发人员已经 为该框架做出了贡献 (opens in a new tab)。谁知道呢,也许您甚至会成为 Laravel 的贡献者。

创建 Laravel 项目

在创建您的第一个 Laravel 项目之前,请确保您的本地机器已安装 PHP 和 Composer (opens in a new tab)。如果您在 macOS 或 Windows 上进行开发,PHP、Composer、Node 和 NPM 可以通过 Laravel Herd 在几分钟内安装完成。

在安装了 PHP 和 Composer 之后,您可以通过 Composer 的 create-project 命令创建一个新的 Laravel 项目:

composer create-project laravel/laravel example-app

或者,您可以通过 Composer 在全局范围内安装 Laravel 安装器 (opens in a new tab)来创建新的 Laravel 项目。Laravel 安装器允许您在创建新应用程序时选择您喜欢的测试框架、数据库和入门套件:

composer global require laravel/installer

laravel new example-app

项目创建完成后,使用 Laravel Artisan 的 serve 命令启动 Laravel 的本地开发服务器:

cd example-app

php artisan serve

启动 Artisan 开发服务器后,您的应用程序将可以在您的 Web 浏览器中通过 http://localhost:8000 (opens in a new tab) 访问。接下来,您准备好 进入 Laravel 生态系统的下一步 了。当然,您可能还想 配置数据库

[!NOTE]
如果您想在开发 Laravel 应用程序时有一个良好的开端,可以考虑使用我们的 入门套件 。Laravel 的入门套件为您的新 Laravel 应用程序提供了后端和前端的身份验证框架。

初始配置

Laravel 框架的所有配置文件都存储在 config 目录中。每个选项都有文档记录,所以您可以随意浏览这些文件并熟悉您可以使用的选项。

Laravel 几乎不需要额外的开箱即用配置。您可以自由地开始开发!但是,您可能希望查看 config/app.php 文件及其文档。它包含几个选项,例如 timezone(时区)和 locale(区域设置),您可能希望根据您的应用程序进行更改。

基于环境的配置

由于 Laravel 的许多配置选项值可能会根据您的应用程序是在本地机器上运行还是在生产 Web 服务器上运行而有所不同,因此许多重要的配置值是使用存在于您的应用程序根目录的 .env 文件来定义的。

您的 .env 文件不应该提交到您的应用程序的源代码控制中,因为每个使用您的应用程序的开发人员/服务器可能需要不同的环境配置。此外,如果入侵者获得了对您的源代码控制存储库的访问权限,这将是一个安全风险,因为任何敏感的凭据都将被暴露。

[!NOTE]
有关 .env 文件和基于环境的配置的更多信息,请查看完整的 配置文档

数据库与迁移

现在您已经创建了您的 Laravel 应用程序,您可能想要在数据库中存储一些数据。默认情况下,您的应用程序的 .env 配置文件指定 Laravel 将与 SQLite 数据库进行交互。

在项目创建过程中,Laravel 为您创建了一个 database/database.sqlite 文件,并运行了必要的迁移来创建应用程序的数据库表。

如果您更喜欢使用其他数据库驱动程序,如 MySQL 或 PostgreSQL,您可以更新您的 .env 配置文件以使用适当的数据库。例如,如果您希望使用 MySQL,像这样更新您的 .env 配置文件的 DB_* 变量:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

如果您选择使用除 SQLite 以外的数据库,您将需要创建数据库并运行您的应用程序的 数据库迁移

php artisan migrate

[!NOTE]
如果您在 macOS 或 Windows 上进行开发并且需要在本地安装 MySQL、PostgreSQL 或 Redis,可以考虑使用 Herd Pro (opens in a new tab)

目录配置

Laravel 应始终从为您的 Web 服务器配置的“Web 目录”的根目录中提供服务。您不应尝试从“Web 目录”的子目录中提供 Laravel 应用程序服务。这样做可能会暴露您的应用程序中存在的敏感文件。

使用 Herd 进行本地安装

Laravel Herd (opens in a new tab) 是适用于 macOS 和 Windows 的快速、原生的 Laravel 和 PHP 开发环境。Herd 包含了您开始进行 Laravel 开发所需的一切,包括 PHP 和 Nginx。

一旦您安装了 Herd,就可以开始使用 Laravel 进行开发了。Herd 为 phpcomposerlaravelexposenodenpmnvm 提供了命令行工具。

[!NOTE]
Herd Pro (opens in a new tab) 为 Herd 增加了更多强大的功能,例如创建和管理本地 MySQL、Postgres 和 Redis 数据库,以及本地邮件查看和日志监控的能力。

macOS 上的 Herd

如果您在 macOS 上进行开发,可以从 Herd 网站 (opens in a new tab) 下载 Herd 安装程序。安装程序会自动下载最新版本的 PHP,并将您的 Mac 配置为始终在后台运行 Nginx (opens in a new tab)

macOS 上的 Herd 使用 dnsmasq (opens in a new tab) 来支持“停放”目录。任何位于停放目录中的 Laravel 应用程序都将由 Herd 自动提供服务。默认情况下,Herd 在 ~/Herd 创建一个停放目录,您可以使用目录名称在 .test 域上访问此目录中的任何 Laravel 应用程序。

安装 Herd 后,使用捆绑在 Herd 中的 Laravel CLI 创建新的 Laravel 项目是最快的方法:

cd ~/Herd
laravel new my-app
cd my-app
herd open

当然,您始终可以通过 Herd 的用户界面(可从系统托盘中的 Herd 菜单打开)来管理您的停放目录和其他 PHP 设置。

您可以通过查看 Herd 文档 (opens in a new tab) 了解更多关于 Herd 的信息。

Windows 上的 Herd

您可以在 Herd 网站 (opens in a new tab) 上下载 Windows 版的 Herd 安装程序。安装完成后,您可以启动 Herd 以完成入职流程并首次访问 Herd UI。

通过左键单击系统托盘中的 Herd 图标可以访问 Herd UI。右键单击可打开快速菜单,其中包含您日常所需的所有工具。

在安装过程中,Herd 会在您的主目录中的 %USERPROFILE%\Herd 创建一个“停放”目录。任何位于停放目录中的 Laravel 应用程序都将由 Herd 自动提供服务,您可以使用目录名称在 .test 域上访问此目录中的任何 Laravel 应用程序。

安装 Herd 后,使用捆绑在 Herd 中的 Laravel CLI 创建新的 Laravel 项目是最快的方法。要开始操作,请打开 PowerShell 并运行以下命令:

cd ~\Herd
laravel new my-app
cd my-app
herd open

您可以通过查看 Windows 版的 Herd 文档 (opens in a new tab) 了解更多关于 Herd 的信息。

使用 Sail 进行 Docker 安装

无论您喜欢哪种操作系统,我们都希望您能够尽可能轻松地开始使用 Laravel。因此,在本地机器上开发和运行 Laravel 项目有多种选择。虽然您可能希望在以后探索这些选项,但 Laravel 提供了 Sail,这是一个使用 Docker (opens in a new tab) 运行您的 Laravel 项目的内置解决方案。

Docker 是一种在小型、轻量级的“容器”中运行应用程序和服务的工具,不会干扰您本地机器上安装的软件或配置。这意味着您不必担心在本地机器上配置或设置复杂的开发工具,如 Web 服务器和数据库。要开始使用,您只需要安装 Docker Desktop (opens in a new tab)

Laravel Sail 是一个轻量级的命令行界面,用于与 Laravel 的默认 Docker 配置进行交互。Sail 为使用 PHP、MySQL 和 Redis 构建 Laravel 应用程序提供了一个很好的起点,无需事先具备 Docker 经验。

[!NOTE]
已经是 Docker 专家了?别担心!使用与 Laravel 一起包含的 docker-compose.yml 文件,Sail 的所有内容都可以进行自定义。

macOS 上的 Sail

如果您在 Mac 上进行开发并且已经安装了 Docker Desktop (opens in a new tab),您可以使用一个简单的终端命令来创建一个新的 Laravel 项目。例如,要在名为“example-app”的目录中创建一个新的 Laravel 应用程序,您可以在终端中运行以下命令:

curl -s "https://laravel.build/example-app" | bash

当然,您可以将此 URL 中的“example-app”更改为您喜欢的任何名称 - 只要确保应用程序名称仅包含字母数字字符、破折号和下划线。Laravel 应用程序的目录将在您执行命令的目录中创建。

在您的本地机器上构建 Sail 的应用程序容器时,Sail 安装可能需要几分钟时间。

项目创建后,您可以导航到应用程序目录并启动 Laravel Sail。Laravel Sail 为与 Laravel 的默认 Docker 配置进行交互提供了一个简单的命令行界面:

cd example-app
 
./vendor/bin/sail up

一旦应用程序的 Docker 容器启动,您应该运行应用程序的 数据库迁移

./vendor/bin/sail artisan migrate

最后,您可以在您的 Web 浏览器中访问该应用程序,地址为:http://localhost。 (opens in a new tab)

[!NOTE]
要继续了解更多关于 Laravel Sail 的信息,请查看其 完整文档

Windows 上的 Sail

在您的 Windows 机器上创建新的 Laravel 应用程序之前,请确保安装 Docker Desktop (opens in a new tab)。接下来,您应该确保已安装并启用 Windows Subsystem for Linux 2(WSL2)。WSL 允许您在 Windows 10 上原生运行 Linux 二进制可执行文件。有关如何安装和启用 WSL2 的信息,可以在 Microsoft 的 开发人员环境文档 (opens in a new tab) 中找到。

[!NOTE]
安装并启用 WSL2 后,您应该确保 将 Docker Desktop 配置为使用 WSL2 后端 (opens in a new tab)

接下来,您可以准备创建您的第一个 Laravel 项目了。启动 Windows Terminal (opens in a new tab) 并为您的 WSL2 Linux 操作系统开始一个新的终端会话。接下来,您可以使用一个简单的终端命令来创建一个新的 Laravel 项目。例如,要在名为“example-app”的目录中创建一个新的 Laravel 应用程序,您可以在终端中运行以下命令:

curl -s https://laravel.build/example-app | bash

当然,您可以将此 URL 中的“example-app”更改为您喜欢的任何名称 - 只要确保应用程序名称仅包含字母数字字符、破折号和下划线。Laravel 应用程序的目录将在您执行命令的目录中创建。

在您的本地机器上构建 Sail 的应用程序容器时,Sail 安装可能需要几分钟时间。

项目创建后,您可以导航到应用程序目录并启动 Laravel Sail。Laravel Sail 为与 Laravel 的默认 Docker 配置进行交互提供了一个简单的命令行界面:

cd example-app
 
./vendor/bin/sail up

一旦应用程序的 Docker 容器启动,您应该运行应用程序的 数据库迁移

./vendor/bin/sail artisan migrate

最后,您可以在您的 Web 浏览器中访问该应用程序,地址为:http://localhost。 (opens in a new tab)

[!NOTE]
要继续了解更多关于 Laravel Sail 的信息,请查看其 完整文档

在 WSL2 中进行开发

当然,您需要能够修改在 WSL2 安装中创建的 Laravel 应用程序文件。为实现此目的,我们建议使用微软的Visual Studio Code (opens in a new tab)编辑器及其针对远程开发 (opens in a new tab)的第一方扩展。

安装这些工具后,您可以在 Windows Terminal 中从应用程序的根目录执行code.命令来打开任何 Laravel 项目。

在 Linux 上使用 Sail

如果您在 Linux 上进行开发并且Docker Compose (opens in a new tab)已经安装,您可以使用一个简单的终端命令来创建一个新的 Laravel 项目。

首先,如果您正在使用 Docker Desktop for Linux,您应该执行以下命令。如果您未使用 Docker Desktop for Linux,则可以跳过此步骤:

docker context use default

然后,要在名为“example-app”的目录中创建一个新的 Laravel 应用程序,您可以在终端中运行以下命令:

curl -s https://laravel.build/example-app | bash

当然,您可以将此 URL 中的“example-app”更改为您喜欢的任何名称 - 只需确保应用程序名称仅包含字母数字字符、破折号和下划线。Laravel 应用程序的目录将在您执行命令的目录中创建。

在您的本地机器上构建 Sail 的应用程序容器时,Sail 安装可能需要几分钟时间。

项目创建后,您可以导航到应用程序目录并启动 Laravel Sail。Laravel Sail 为与 Laravel 的默认 Docker 配置进行交互提供了一个简单的命令行界面:

cd example-app
 
./vendor/bin/sail up

一旦应用程序的 Docker 容器已启动,您应该运行应用程序的数据库迁移

./vendor/bin/sail artisan migrate

最后,您可以在您的网络浏览器中通过以下网址访问该应用程序:http://localhost。 (opens in a new tab)

[!NOTE]
要继续了解更多关于 Laravel Sail 的信息,请查看其完整文档

选择您的 Sail 服务

通过 Sail 创建新的 Laravel 应用程序时,您可以使用with查询字符串变量来选择在新应用程序的docker-compose.yml文件中应配置哪些服务。可用的服务包括mysqlpgsqlmariadbredismemcachedmeilisearchtypesenseminioseleniummailpit

curl -s "https://laravel.build/example-app?with=mysql,redis" | bash

如果您未指定要配置哪些服务,则将配置默认的mysqlredismeilisearchmailpitselenium堆栈。

您可以通过向 URL 添加devcontainer参数来指示 Sail 安装默认的Devcontainer

curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash

IDE 支持

在开发 Laravel 应用程序时,您可以自由使用任何您希望的代码编辑器;然而,PhpStorm (opens in a new tab)为 Laravel 及其生态系统提供了广泛的支持,包括Laravel Pint (opens in a new tab)

此外,社区维护的Laravel Idea (opens in a new tab) PhpStorm 插件提供了各种有用的 IDE 增强功能,包括代码生成、Eloquent 语法完成、验证规则完成等。

下一步

现在您已经创建了您的 Laravel 项目,您可能想知道接下来要学习什么。首先,我们强烈建议您通过阅读以下文档来熟悉 Laravel 的工作方式:

您想要如何使用 Laravel 也将决定您旅程的下一步。使用 Laravel 的方式多种多样,我们将在下面探讨该框架的两个主要用例。

[!NOTE]
对 Laravel 不熟悉?查看Laravel 训练营 (opens in a new tab),在我们带您构建第一个 Laravel 应用程序的同时,对该框架进行实践之旅。

Laravel 作为全栈框架

Laravel 可以作为一个全栈框架。所谓“全栈”框架,是指您将使用 Laravel 将请求路由到您的应用程序,并通过Blade 模板或像Inertia (opens in a new tab)这样的单页应用混合技术来渲染您的前端。这是使用 Laravel 框架最常见的方式,并且在我们看来,也是使用 Laravel 最有效的方式。

如果您计划以这种方式使用 Laravel,您可能想要查看我们关于前端开发路由视图Eloquent ORM的文档。此外,您可能有兴趣了解像Livewire (opens in a new tab)Inertia (opens in a new tab)这样的社区包。这些包允许您将 Laravel 用作全栈框架,同时享受单页 JavaScript 应用程序提供的许多 UI 优势。

如果您将 Laravel 用作全栈框架,我们还强烈建议您学习如何使用Vite编译您的应用程序的 CSS 和 JavaScript。

[!NOTE]
如果您想在构建应用程序时抢先一步,查看我们的官方应用程序启动套件之一。

Laravel 作为 API 后端

Laravel 也可以作为 JavaScript 单页应用程序或移动应用程序的 API 后端。例如,您可以将 Laravel 用作您的Next.js (opens in a new tab)应用程序的 API 后端。在这种情况下,您可以使用 Laravel 为您的应用程序提供认证和数据存储/检索,同时还可以利用 Laravel 的强大服务,如队列、电子邮件、通知等。

如果您计划以这种方式使用 Laravel,您可能想要查看我们关于路由Laravel SanctumEloquent ORM的文档。

[!NOTE]
需要快速搭建您的 Laravel 后端和 Next.js 前端吗?Laravel Breeze 提供了一个API 堆栈以及一个Next.js 前端实现 (opens in a new tab),这样您可以在几分钟内开始。