安装
遇见 Laravel
Laravel 是一个优雅的 Web 开发框架,为应用构建提供了现代化的目录结构和非常好的起点,依托于强大的生态、可扩展性和弹性设计,可以让你专注于业务代码开发和快速迭代。
Laravel 设计之初的宗旨就是让开发过程变得愉悦,致力于提供出色的开发者体验,同时提供强大的功能特性,比如彻底的依赖注入、强大的数据库抽象层、消息队列和任务调度、单元测试和集成测试等。
不管你是 PHP 或者 Web 框架新手,还是已经拥有数年的开发经验,Laravel 都是一个可以和你共同成长的框架,希望它可以帮助你迈出成为 Web 开发工程师的第一步,或者助力你将已有的经验和专业知识提高到一个新的水平。我们迫不及待地看到你使用它来构建新的应用。
为什么选择 Laravel
随着这些年互联网如火如荼的发展,当我们想要构建一个新的 Web 应用时,已经有非常多的工具和框架可供选择,不过,我们坚信 Laravel 是构建现代全栈 Web 应用的最佳选择,理由如下:
一个不断演进的框架
我们喜欢将 Laravel 称之为一个「渐进式」框架,意思是说 Laravel 会和你共同成长。如果你刚刚迈入 Web 开发的门槛,Laravel 丰富的文档和教程库会帮助你按照指定的路径和方向从容不迫地学习和进步。
如果你已经是一个资深的开发者,Laravel 会为你提供强大的生产力工具,比如依赖注入、单元测试、消息队列、实时事件等,Laravel 为构建专业的 Web 应用做了大量精心的设计,并且随时准备好处理企业的高负载。
一个可扩展/伸缩的框架
Laravel 具备令人难以置信的可扩展性/可伸缩性,得益于 PHP 的可伸缩性和 Laravel 内置的对高性能分布式缓存系统(如 Redis)的支持,对 Laravel 应用而言,水平扩展是轻而易举就可以实现的事情。通过实际生产项目的验证,Laravel 应用已经被轻松扩展到可以每月处理数以亿计的请求。
如果你想要更简单地对 Laravel 应用进行弹性伸缩,可以使用 Laravel Vapor 之类的、基于 AWS 最新的 Serverless 技术实现的无限扩容 PaaS 服务。
一个拥有强大社区的框架
Laravel 整合了 PHP 生态中所有最好的扩展包,以便为开发者提供最强大、最友好的 Web 开发框架。此外,来自世界各地的数千名优秀开发者正在为这个框架做出贡献,谁知道呢,可能你在不久的将来也会成为 Laravel 贡献者大军的一员。
第一个 Laravel 项目
我们始终在努力将 Laravel 框架的入门变得越来越简单,在你的本地计算机上,可以有多种方案来开发和运行 Laravel 项目,这里,我们推荐使用 Laravel 提供的 Sail,一个基于 Docker 的 Laravel 本地开发环境解决方案。
Docker 是一个用于运行应用和服务的轻量级「容器」,它不会与本地计算机已安装的任何软件或者配置交互,所以不需要担心配置或者设置复杂的开发工具,比如在本地安装或者配置 Web 服务器和数据库,要使用 Docker,需要安装先安装 Docker Desktop。
Laravel Sail 是一个与 Laravel 默认 Docker 配置进行交互的轻量级命令行接口,它为使用 PHP、MySQL、Redis 构建 Laravel 应用提供了一个很好的起点,你不需要具备任何 Docker 使用经验就可以快速上手。
你已经是一个 Docker 专家了?别担心,关于 Sail 的一切行为特性都可以通过 Laravel 自带的
docker-compose.yml
进行自定义。
macOS 入门指南
如果你本地计算机使用的是 macOS 系统并且已经安装了 Docker Desktop,可以使用终端命令来创建一个新的 Laravel 项目。例如,如果你想要在指定目录下创建一个新的名为「example-app」的 Laravel 应用,可以在终端中运行如下命令实现:
curl -s https://laravel.build/example-app | bash
当然,你可以按需要将 URL 中的「example-app」修改为任意名称。这个 Laravel 应用的目录将位于你执行上述命令所在目录。
创建好项目后,你可以进入到应用目录并启动 Laravel Sail。Laravel Sail 提供了一个非常简单的命令行接口与 Laravel 默认的 Docker 配置进行交互:
cd example-app
./vendor/bin/sail up
第一次运行 Sail up
命令的时候,会构建 Sail 的应用容器,这会稍微花费几分钟,不过不用担心,后续不需要再构建应用容器,启动 up
命令会很快。
应用 Docker 容器启动后,你可以在浏览器中通过 http://localhost
访问应用。
想要学习更多关于 Laravel Sail 的内容,请参考 Sail 的完整文档。
Windows 入门指南
在 Windows 系统上创建新的 Laravel 应用前,确保已经安装 Docker Desktop。接下来,还要确保 Windows Subsystem for Linux 2 (WSL2) 已经安装并启动。WSL 可以让开发者在 Windows 10 中本地运行 Linux 系统的二进制可执行文件,关于如何安装和启动 WSL2 的更多细节请参考学院君之前发布的在 WSL 2 虚拟机中基于 Docker 编排 LNMP 运行环境这篇教程,这里不详细展开了。
安装并启动 WSL2 后,需要确保 Docker Desktop 被配置为使用 WSL2 后端。
下一步,就可以在 Windows 系统中创建第一个 Laravel 项目了。启动 Windows Terminal 并为 WSL2 Linux 系统打开一个新的终端会话,然后和 macOS 系统一样,使用如下命令来创建一个新的名为「example-app」的 Laravel 应用:
curl -s https://laravel.build/example-app | bash
当然,这个 URL 中的项目名称可以按照需要修改成任意值,新建的 Laravel 项目位于执行上述命令的目录下。
创建好项目后,你可以进入到应用目录并启动 Laravel Sail。Laravel Sail 提供了一个非常简单的命令行接口与 Laravel 默认的 Docker 配置进行交互:
cd example-app
./vendor/bin/sail up
第一次运行 Sail up
命令的时候,会构建 Sail 的应用容器,这会稍微花费几分钟,不过不用担心,后续不需要再构建应用容器,启动 up
命令会很快。
应用 Docker 容器启动后,你可以在浏览器中通过 http://localhost
访问应用。
想要学习更多关于 Laravel Sail 的内容,请参考 Sail 的完整文档。
在 WSL2 中开发
由于使用上述方式创建的 Laravel 项目位于 WSL2 中,WSL2 本质上是 Windows 宿主机中的 Linux 子系统,所以无法直接使用宿主机软件编辑这个 Laravel 项目代码,这显然是不行的,为了能够编辑在 WSL2 中创建的 Laravel 项目代码,推荐使用微软官方提供的 Visual Studio Code 编辑器并安装官方扩展 Remote Development。
安装好这些工具后,就可以使用 Windows Terminal 在应用根目录下通过 code .
命令在 Visual Studio Code 中打开并编辑 Laravel 项目代码了。
Linux 入门指南
如果你本地计算机使用的是 Linux 系统并且已经安装了 Docker Desktop,可以使用终端命令来创建一个新的 Laravel 项目。例如,如果你想要在指定目录下创建一个新的名为「example-app」的 Laravel 应用,可以在终端中运行如下命令实现:
curl -s https://laravel.build/example-app | bash
当然,你可以按需要将 URL 中的「example-app」修改为任意名称。这个 Laravel 应用的目录将位于你执行上述命令所在目录。
创建好项目后,你可以进入到应用目录并启动 Laravel Sail。Laravel Sail 提供了一个非常简单的命令行接口与 Laravel 默认的 Docker 配置进行交互:
cd example-app
./vendor/bin/sail up
第一次运行 Sail up
命令的时候,会构建 Sail 的应用容器,这会稍微花费几分钟,不过不用担心,后续不需要再构建应用容器,启动 up
命令会很快。
应用 Docker 容器启动后,你可以在浏览器中通过 http://localhost
访问应用。
想要学习更多关于 Laravel Sail 的内容,请参考 Sail 的完整文档。
通过 Composer 安装
如果你的本地操作系统已经安装了 PHP 和 Composer,还可以直接通过 Composer 命令来安装 Laravel 应用,安装完成后,可以使用 Artisan CLI 命令 serve
启动 Laravel 本地开发服务器:
composer create-project laravel/laravel example-app
cd example-app
php artisan serve
通过 Laravel 安装器
或者,你可以通过 Laravel 安装器安装 Laravel,在此之前,需要通过 Composer 全局安装 Laravel 安装器:
composer global require laravel/installer
laravel new example-app
php artisan serve
注:如果之前已经安装过,可以运行
composer global update
将其升级到最新版本,最终需要确保laravel
版本号是^4.0
版本,你可以通过laravel -V
命令查看。
确保 Composer 的全局 vendor/bin
目录包含在系统 $PATH
路径中,以便系统可以找到 laravel
可执行命令。在不同的操作系统中,这个目录的位置也有所不同,常见的几种操作系列存放位置罗列如下:
- macOS:
$HOME/.composer/vendor/bin
($HOME
表示当前用户家目录,可以用~
替代) - Windows:
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
(%USERPROFILE%
代表的也是当前用户家目录) - GNU/Linux:
$HOME/.config/composer/vendor/bin
或者$HOME/.composer/vendor/bin
初始化配置
Laravel 框架的所有配置文件都存放在 config
目录下,每个配置项都有文档,你可以整体阅读下所有这些配置文件来熟悉配置项的作用和位置。
Laravel 几乎不再需要其它任何配置就可以正常使用了,不过,你最好再看看 config/app.php
文件,其中包含了一些基于应用可能需要进行改变的配置,比如 timezone
和 locale
(分别用于配置时区和本地化)。
基于环境的配置
由于很多 Laravel 的配置值会随着应用所处环境的不同而变化(比如本地开发环境、测试环境、生产环境的数据库连接配置通常不一样),所以,我们通常将一些重要的、随环境变化的配置值通过项目根目录下的 .env
环境配置文件进行配置。
.env
文件不应该被提交到代码仓库,尤其是公开的代码仓库,因为每个开发者/服务器使用不同的环境配置,此外,这也会带来安全隐患 —— 增加被入侵者获取到这些配置信息对系统进行攻击的风险。
更多关于
.env
文件的细节和基于环境的配置,请参考完整的配置文档。
下一步
现在你已经创建了新的 Laravel 项目,那么下一步该做什么呢?首先,强烈推荐阅读以下文档熟悉 Laravel 整体的工作流程:
你想要如何使用 Laravel 构建应用也会影响你下一步要做什么,Laravel 框架有多种用途,这里主要列举两个主要的使用场景:
构建全栈项目
Laravel 可以用作全栈开发框架,这里「全栈」的含义是使用 Laravel 路由请求到应用然后通过 Blade 模板渲染前端页面或者使用单页面应用水合技术(如 Inertia.js)。这也是 Laravel 框架最常见的使用场景。
如果这就是使用 Laravel 框架的计划,你需要阅读路由、视图、以及 Eloquent ORM 文档,此外,你可能还对学习第三方扩展包 Livewire 和 Inertia.js 感兴趣。这些扩展包允许你使用 Laravel 作为全栈框架的同时可以继续享受基于单页面 JavaScript 应用提供的 UI 便利。
如果你使用 Laravel 作为全栈框架,我们还鼓励你学习使用 Laravel Mix 编译应用 CSS 和 JavaScript 代码。
如果你现在想要开始构建应用程序,可以先阅读下入门套件文档熟悉下快速入门流程。
构建后端 API
Laravel 还可以为 JavaScript 单页面应用或者移动应用提供后端 API。例如,你可以将 Laravel 作为 Next.js 应用的 API 后端,在这样的使用场景中,你可以使用 Laravel 提供认证和数据存取服务,以及消息队列、邮件、通知等更多服务。
如果这是你使用 Lravel 框架的计划,可以阅读路由、Sanctum 和 Eloquent ORM 文档。
6 Comments
新安装的不能使用 php7.4.3 切换到php7.3.4 就能正常打开了。。。
不应该啊 我本地是 PHP 7.4.7 没有问题
@学院君 你这个是翻译的原文吗,laravel -V 明明是3.2啊。官方文档也没说4.0啊
这个是我电脑问题,我现在过了3天重启他变了。4.0.4当天的时候确实都更新了他还是3.0
你没有更新吧
你用 3.2 版本安装器应该安装不了 Laravel 8.0 的,如果运行
composer global update
不管用,就手动去修改全局composer.json
这个文件位于
~/.composer/composer.json
原文有些词不达意的地方我要解释清楚一些 所以并不是完全字面翻译
sail up后,执行sail artisan, 提示Could not open input file: artisan