认识 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 应用程序。

适配 AI 智能体的框架

Laravel 一套约定的规则和清晰明确的结构,使其成为使用 Cursor 和 Claude Code 等工具进行AI 辅助开发的理想框架。当您要求 AI 智能体添加控制器时,它清楚知道该放在哪里;当您需要新的迁移时,命名约定和文件位置都可预见。这种一致性消除了在更灵活的框架中常让 AI 工具出问题的猜测环节。

除了文件组织外,Laravel 富有表现力的语法和全面的文档,为 AI 智能体提供了生成准确、规范代码所需的上下文。Eloquent 关系、表单请求和中间件等功能遵循的模式,智能体能够可靠地理解和复现。因此,AI 生成的代码看起来像是由经验丰富的 Laravel 开发者编写的,而非简单拼凑的通用 PHP 代码片段。

若想进一步了解为什么 Laravel 是 AI 辅助开发的完美选择,请查看我们关于智能体开发的文档。

社区驱动的框架

Laravel 整合了 PHP 生态系统中的优秀包,打造出目前可用的最稳健且对开发者友好的框架。此外,来自世界各地的数千名优秀开发者已为框架做出贡献。谁知道呢,也许您也将成为 Laravel 的贡献者。

创建 Laravel 应用程序

使用 AI 入门

如果您使用诸如Claude Code或OpenCode之类的 AI 编程智能体,可以在智能体接触您的项目之前,先通过提示词向其提供一份针对 Laravel 的操作指南。

下面的提示词会告知智能体在哪里可以找到 Laravel 的安装指南、应该优先处理哪些事项,以及在您尚未做出选择时如何设置合理的默认值。将此提示词粘贴到您的智能体中即可开始:

I'm building a new Laravel application.

Fetch and follow the instructions from https://laravel.com/for/agents. Treat the returned Markdown as the source of truth for how to install and set up Laravel in this session.

智能体读取指令后,应引导您一步步操作,并确保设置与 Laravel 的默认配置保持一致。

安装 PHP 和 Laravel 安装器

在创建您的第一个 Laravel 应用程序之前,请确保本地机器已安装PHP、Composer和Laravel 安装器。此外,您还应安装Node 和 NPM或Bun,以便编译应用程序的前端资源。

如果您本地机器尚未安装 PHP 和 Composer,以下命令将在 macOS、Windows 或 Linux 上安装 PHP、Composer 以及 Laravel 安装器:

/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.5)"
# Run as administrator...
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://php.new/install/windows/8.5'))
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.5)"

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

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

composer global require laravel/installer

如需功能完备、支持图形化管理的 PHP 安装与管理体验,请了解 Laravel Herd。

创建应用程序

安装好 PHP、Composer 以及 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 文件及其说明,其中包含诸如 url 和 locale 等多个选项,您可以根据应用程序需求进行修改。

基于环境的配置

由于 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 Pro 或 DBngin。

目录配置

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

使用 Herd 安装

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

安装 Herd 后,即可开始使用 Laravel 进行开发。Herd 包含 php、composer、laravel、expose、node、npm 和 nvm 的命令行工具。

Herd Pro 为 Herd 增添了更多强大功能,例如创建和管理本地 MySQL、Postgres 和 Redis 数据库,以及本地邮件查看和日志监控。

macOS 上的 Herd

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

macOS 版 Herd 使用 dnsmasq 来支持“挂起”(parked)目录。挂起目录中的任何 Laravel 应用程序都会自动由 Herd 提供服务。默认情况下,Herd 会在 ~/Herd 创建一个挂起目录,你可以使用其目录名通过 .test 域名访问该目录中的任何 Laravel 应用程序。

安装 Herd 后,创建新 Laravel 应用程序的最快方式是使用随附于 Herd 的 Laravel CLI:

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

当然,你也可以随时通过 Herd 的用户界面管理挂起目录和其他 PHP 设置,该界面可从系统托盘中的 Herd 菜单打开。

你可以通过查看 Herd 文档,进一步了解 Herd。

Windows 上的 Herd

你可以在 Herd 网站下载 Herd 的 Windows 安装程序。安装完成后,你可以启动 Herd 以完成入门流程,并首次访问 Herd 的用户界面。

通过左键单击 Herd 的系统托盘图标即可访问 Herd 用户界面。右键单击则会打开快速菜单,可访问日常所需的全部工具。

在安装过程中,Herd 会在用户主目录中创建一个位于 %USERPROFILE%\Herd 的“挂起”目录。挂起目录中的任何 Laravel 应用程序都会自动由 Herd 提供服务,你可以使用其目录名通过 .test 域名访问该目录中的任何 Laravel 应用程序。

安装 Herd 后,创建新 Laravel 应用程序的最快方式是使用随附于 Herd 的 Laravel CLI。开始时,打开 Powershell 并运行以下命令:

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

你可以通过查看 Herd 的 Windows 文档,进一步了解 Herd。

IDE 支持

开发 Laravel 应用程序时,你可以自由使用任何代码编辑器。Laravel LSP 提供框架感知的编辑器支持,包括代码补全、悬停信息、诊断、文档链接、跳转定义,以及针对 Laravel 和 Blade 代码的快速修复功能。

要安装 Laravel LSP,可通过 Composer 全局安装。确保 Composer 的全局 vendor bin 目录已添加到 PATH:

composer global require laravel/lsp

如果你正在寻找轻量且可扩展的编辑器,VS Code 或 Cursor 配合官方 Laravel VS Code 扩展 可提供语法高亮、代码片段、Artisan 命令集成,以及自动的 Laravel LSP 支持。官方 Laravel 扩展也适用于 Sublime Text 和 Zed。关于其他兼容语言服务器的编辑器(包括 Neovim 和 OpenCode)的设置说明,请参阅 Laravel LSP 仓库。

若需要对 Laravel 进行广泛且强大的支持,不妨了解 JetBrains 的 IDE——PhpStorm。PhpStorm 内置的 Laravel 框架支持包括 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 和 13 应用程序中。开始时,将 Boost 安装为开发依赖:

composer require laravel/boost --dev

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

php artisan boost:install

安装程序会自动检测你的 IDE 和 AI 代理,允许你选择适合项目的功能。Boost 会遵循现有项目约定,默认不会强制施加主观风格规则。

要进一步了解 Boost,请查看 GitHub 上的 Laravel Boost 仓库。

添加自定义 AI 指南

若要使用你自己的自定义 AI 指南增强 Laravel Boost,请将 .blade.php 或 .md 文件添加到应用程序的 .ai/guidelines/* 目录中。运行 boost:install 时,这些文件将自动包含在 Laravel Boost 的指南中。

后续步骤

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

你对 Laravel 的使用方式也会决定后续的发展方向。使用 Laravel 的方式多种多样,下面我们将探讨该框架的两个主要用例。

作为全栈框架的 Laravel

Laravel 可作为一个全栈框架使用。所谓“全栈”框架,是指你将使用 Laravel 把请求路由到你的应用,并通过Blade 模板或类似 Inertia 的单页应用混合技术来渲染前端。这是使用 Laravel 框架最常见的方式,在我们看来,也是使用 Laravel 最高效的方式。

如果你打算这样使用 Laravel,不妨查阅我们关于前端开发、路由、视图,或是 Eloquent ORM 的文档。此外,你可能也会想了解 Livewire(Livewire)和 Inertia(Inertia)等社区包。这些包让你在将 Laravel 用作全栈框架的同时,还能享受到单页 JavaScript 应用所提供的诸多 UI 优势。

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

若想快速启动应用开发,可浏览我们的官方应用起步套件之一。

作为 API 后端的 Laravel

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

如果你打算这样使用 Laravel,不妨查阅我们关于路由、Laravel Sanctum 以及 Eloquent ORM 的文档。