Lzh on GitHub

认识 Laravel

Laravel 是一个拥有富有表现力、优雅语法的 Web 应用程序框架。Web 框架为创建您的应用程序提供了结构和起点,让您可以专注于创造一些令人惊奇的东西,而我们则处理细节。

Laravel 致力于提供绝佳的开发者体验,同时提供强大的功能,例如彻底的依赖注入、富有表现力的数据库抽象层、队列和计划任务、单元和集成测试等。

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

为什么选择 Laravel?

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

一个渐进式框架

我们喜欢称 Laravel 为 “渐进式” 框架。我们的意思是 Laravel 会与您一起成长。如果您刚开始涉足 Web 开发,Laravel 庞大的文档库、指南和 视频教程 将帮助您学习,而不会感到不知所措。

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

一个可扩展的框架

Laravel 具有令人难以置信的可扩展性。得益于 PHP 对扩展友好的特性以及 Laravel 对 Redis 等快速、分布式缓存系统的内置支持,使用 Laravel 进行横向扩展变得轻而易举。事实上,Laravel 应用程序已轻松扩展到每月处理数亿次请求。

需要极致扩展? Laravel Cloud 等平台允许您以几乎无限的规模运行您的 Laravel 应用程序。

一个社区框架

Laravel 结合了 PHP 生态系统中最好的软件包,以提供最强大、最友好的开发者框架。此外,来自世界各地的数千名才华横溢的开发者为该框架做出了 贡献。谁知道呢,也许您也会成为 Laravel 的贡献者。

创建 Laravel 应用程序

安装 PHP 和 Laravel 安装器

在创建您的第一个 Laravel 应用程序之前,请确保您的本地计算机已安装 PHPComposerLaravel 安装器。此外,您应该安装 Node 和 NPMBun,以便您可以编译应用程序的前端资产。

如果您的本地计算机上没有安装 PHP 和 Composer,以下命令将在 macOS、Windows 或 Linux 上安装 PHP、Composer 和 Laravel 安装器:

/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)"

运行上述命令之一后,您应该重新启动终端会话。要在通过 php.new 安装后更新 PHP、Composer 和 Laravel 安装器,您可以在终端中重新运行该命令。

如果您已经安装了 PHP 和 Composer,您可以通过 Composer 安装 Laravel 安装器:

composer global require laravel/installer
对于功能齐全、图形化的 PHP 安装和管理体验,请查看 Laravel Herd

创建应用程序

安装 PHP、Composer 和 Laravel 安装器后,您就可以创建一个新的 Laravel 应用程序了。Laravel 安装器将提示您选择首选的测试框架、数据库和入门套件:

laravel new example-app

创建应用程序后,您可以使用 dev Composer 脚本启动 Laravel 的本地开发服务器、队列工作程序和 Vite 开发服务器:

cd example-app
npm install && npm run build
composer run dev

启动开发服务器后,您的应用程序将在 Web 浏览器中通过 http://localhost:8000 访问。接下来,您已准备好 迈出进入 Laravel 生态系统的下一步。当然,您可能也想 配置数据库

如果您希望在开发 Laravel 应用程序时有一个良好的开端,请考虑使用我们的 入门套件 之一。Laravel 的入门套件为您的新 Laravel 应用程序提供了后端和前端身份验证脚手架。

初始配置

Laravel 框架的所有配置文件都存储在 config 目录中。每个选项都有文档,因此请随意浏览文件并熟悉可用的选项。

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

基于环境的配置

由于 Laravel 的许多配置选项值可能因您的应用程序是在本地计算机上运行还是在生产 Web 服务器上运行而异,因此许多重要的配置值都使用应用程序根目录下的 .env 文件进行定义。

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

有关 .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
如果您在 macOS 或 Windows 上进行开发,并且需要在本地安装 MySQL、PostgreSQL 或 Redis,请考虑使用 Herd ProDBngin

目录配置

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

使用 Herd 安装

Laravel Herd 是一个用于 macOS 和 Windows 的超快速、原生的 Laravel 和 PHP 开发环境。Herd 包含了开始 Laravel 开发所需的一切,包括 PHP 和 Nginx。

安装 Herd 后,您就可以开始使用 Laravel 进行开发了。Herd 包括用于 phpcomposerlaravelexposenodenpmnvm 的命令行工具。

Herd Pro 通过额外的强大功能增强了 Herd,例如创建和管理本地 MySQL、Postgres 和 Redis 数据库的能力,以及本地邮件查看和日志监控。

macOS 上的 Herd

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

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

安装 Herd 后,创建新 Laravel 应用程序的最快方法是使用与 Herd 捆绑的 Laravel CLI:

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

当然,您始终可以通过 Herd 的 UI 管理您的停放目录和其他 PHP 设置,该 UI 可以从系统托盘中的 Herd 菜单打开。

您可以通过查看 Herd 文档 来了解有关 Herd 的更多信息。

Windows 上的 Herd

您可以在 Herd 网站 上下载 Herd 的 Windows 安装程序。安装完成后,您可以启动 Herd 以完成入门过程并首次访问 Herd UI。

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

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

安装 Herd 后,创建新 Laravel 应用程序的最快方法是使用与 Herd 捆绑的 Laravel CLI。要开始使用,请打开 Powershell 并运行以下命令:

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

您可以通过查看 Windows 版 Herd 文档 来了解有关 Herd 的更多信息。

IDE 支持

在开发 Laravel 应用程序时,您可以自由使用任何您想要的代码编辑器。如果您正在寻找轻量级和可扩展的编辑器,VS CodeCursor 与官方的 Laravel VS Code 扩展 相结合,可提供出色的 Laravel 支持,其功能包括语法高亮、代码片段、Artisan 命令集成以及对 Eloquent 模型、路由、中间件、资产、配置和 Inertia.js 的智能自动补全。

JetBrains 的 PhpStormLaravel Idea 插件 相结合,为 Laravel 及其生态系统(包括 Laravel Pint、Larastan 和 Pest)提供了广泛的支持。框架支持涵盖了 Blade 模板,对 Eloquent 模型、路由、视图、翻译和组件的智能自动补全,以及强大的代码生成和在 Laravel 项目中的导航。

对于那些寻求基于云的开发体验的人,Firebase Studio 提供直接在浏览器中构建 Laravel 的即时访问。无需任何设置,Firebase Studio 让从任何设备开始构建 Laravel 应用程序变得轻松。

Laravel 与 AI

Laravel Boost 是一个强大的工具,它弥合了 AI 编码代理和 Laravel 应用程序之间的鸿沟。Boost 为 AI 代理提供了 Laravel 特定的上下文、工具和指南,因此它们可以生成更准确、版本特定的代码,并遵循 Laravel 约定。

当您在 Laravel 应用程序中安装 Boost 时,AI 代理将获得超过 15 个专用工具的访问权限,包括知道您正在使用哪些包、查询您的数据库、搜索 Laravel 文档、读取浏览器日志、生成测试以及通过 Tinker 执行代码的能力。

此外,Boost 使 AI 代理可以访问超过 17,000 条矢量化的 Laravel 生态系统文档,这些文档特定于您安装的包版本。这意味着代理可以提供针对您的项目使用的确切版本的指导。

Boost 还包括由 Laravel 维护的 AI 指南,可帮助代理遵循框架约定、编写适当的测试,并避免在生成 Laravel 代码时常见的陷阱。

安装 Laravel Boost

Boost 可以安装在运行 PHP 8.1 或更高版本的 Laravel 10、11 和 12 应用程序中。要开始使用,请将 Boost 作为开发依赖项安装:

composer require laravel/boost --dev

安装后,运行交互式安装程序:

php artisan boost:install

安装程序会自动检测你的 IDE 和 AI 助手,让你选择适合项目的功能。Boost 会尊重现有的项目约定,默认情况下不会强制采用特定的代码风格规则。

要了解有关 Boost 的更多信息,请查看 GitHub 上的 Laravel Boost 仓库

下一步

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

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

Laravel - 全栈框架

Laravel 可以作为全栈框架。我们所说的 “全栈” 框架是指您将使用 Laravel 来路由请求到您的应用程序并通过 Blade 模板 或像 Inertia 这样的单页应用程序混合技术来渲染您的前端。这是使用 Laravel 框架最常见的方式,也是我们认为使用 Laravel 最有成效的方式。

如果您打算这样使用 Laravel,您可能想查看我们关于 前端开发路由视图Eloquent ORM 的文档。此外,您可能对了解像 LivewireInertia 这样的社区包感兴趣。这些包允许您将 Laravel 作为全栈框架使用,同时享受单页 JavaScript 应用程序提供的许多 UI 好处。

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

如果您想在构建应用程序时有一个良好的开端,请查看我们官方的 应用程序入门套件 之一。

Laravel - API 后端

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

如果您打算这样使用 Laravel,您可能想查看我们关于 路由Laravel SanctumEloquent ORM 的文档。