快速入门
简介
Laravel 是一个 Web 应用框架,有着表现力强、语法优雅的特点。 Web 框架为创建应用提供了一个结构和起点。你只需专注代码,我们为你处理细节。
Laravel 致力于提供出色的开发体验,同时提供强大的特性,例如完全的依赖注入,富有表现力的数据库抽象层,队列和计划任务,单元和集成测试等等。
无论你是刚刚接触 PHP 和 Web 框架的新人,亦或是有着多年经验的老手, Laravel 都是一个可以与你一同成长的框架。我们将帮助你迈出成为 Web 开发者的第一步,或是将你的经验提高到下一个等级。我们迫不及待的想看看你的作品。
安装
环境要求
PHP >= 7.3
BCMath PHP 扩展
Ctype PHP 扩展
Fileinfo PHP 扩展
JSON PHP 扩展
Mbstring PHP 扩展
OpenSSL PHP 扩展
PDO PHP 扩展
Tokenizer PHP 扩展
XML PHP 扩展
通过Composer安装
如果你已经安装好composer,那么可以直接使用composer来创建一个新的项目。但是你的设备还没安装composer的,请参考本文档的Composer章节。那下面就是创建一个新的Laravel项目的指令。
// 创建新的项目
composer create-project laravel/laravel example-app
// 进入项目目录
cd example-app
// 通过Artisan CLI的serve命令来启动Laravel的本地服务
php artisan serve
通过Laravel安装器
或者,你可以通过Laravel安装器作为全局Composer依赖
// 全局安装Laravel安装器
composer global require laravel/installer
// 通过Laravel安装器
laravel new example-app
// 进入项目目录
cd example-app
// 通过Artisan CLI的serve命令来启动Laravel的本地服务
php artisan serve
配置
Laravel 框架的所有配置文件都存放在 config 目录下。
环境配置
基于应用运行的环境不同设置不同的配置值能够给我们开发带来极大的方便,比如,我们通常在本地和线上环境配置不同的缓存驱动,这一功能在 Laravel 中很容易实现。
Laravel 使用 PHP 扩展库 DotEnv 来实现这一功能,在新安装的 Laravel 中,根目录下有一个 .env.example 文件,如果 Laravel 是通过 Composer 安装的,那么该文件已经被重命名为 .env,否则的话你要自己手动重命名该文件。
Laravel 的默认.env 文件包含一些常用的配置值,这些配置值可能会根据您的应用程序是在本地运行还是在生产 Web 服务器上运行而有所不同。 在 Laravel 的 config 目录下,各种配置使用 env 函数检索.env 文件的这些配置值。
定义.ENV环境变量
APP_NAME = "我的应用"
获取.ENV环境变量
/**
* 第一个参数 => 需要的参数名
* 第二个参数 => 当没有找到对应环境变量时将返回的默认
*/
env('APP_DEBUG', false)
Config配置
你可以通过config函数访问配置值
获取配置值
$value = config('app.timezone');
// 如果配置值不存在,返回一个默认值
$value = config('app.timezone', 'Asia/Seoul');
动态修改配置值
若要应用在运行时修改配置,请使用 config 函数的数组形式
config(['app.timezone' => 'America/Chicago']);
公共目录
安装完 Laravel 之后,你必须将 web 服务器根目录指向 public 目录。
该目录下的 index.php 文件将作为所有进入应用程序的 HTTP 请求的前端控制器。
配置文件
Laravel 框架的所有配置文件都放在 config 目录中。
每个选项都有注释,方便你随时查看文件并熟悉可用的选项。
目录权限
安装完 Laravel 后,你可能需要给这两个文件配置读写权限:storage 目录和
bootstrap/cache 目录应该允许 Web 服务器写入,否则 Laravel 程序将无法运行。
如果你使用的是 Homestead 虚拟机, 这些权限已经为你配置好了。
应用密钥
安装 Laravel 之后下一件应该做的事就是将应用程序的密钥设置为随机字符串。
如果你是通过 Composer 或 Laravel 安装器安装的 Laravel,
那这个密钥已经为你通过 php artisan key:generate 命令设置好了。
通常来说,这个字符串长度为 32 个字符。密钥可以在 .env 环境文件中设置。
前提是你要将 .env.example 文件重命名为 .env。
如果应用程序密钥没有被设置,就不能确保你的用户会话和其他加密数据的安全!
其他配置
除了以上的配置,Laravel 几乎就不需要再配置什么了。你随时就能开发!
但是,可能的话,还是希望你查看 config/app.php 文件及其注释。
它包含几个你可能想要根据你的应用来更改的选项,比如 timezone 和 locale。
目录结构
|---app 目录包含应用程序的核心代码
| |-Console 目录包含了所有自定义的 Artisan 命令
| |-Exceptions 目录包含了应用的异常处理器,也是应用抛出异常的好地方
| |-Http 目录包含了控制器、中间件和表单请求。几乎所有的进入应用的请求的处理逻辑都被放在这里
| |-Providers 目录包含了应用的所有 服务提供器
| |-Rules 目录默认不存在,它会在运行 Artisan 命令 make:rule 命令时被创建。包含应用自定义验证规则对象
| |-Models 目录包含所有 Eloquent 模型类
│ └─ ...
|---bootstrap 目录包含引导框架并配置自动加载的文件
|---config 目录,顾名思义,包含应用程序所有的配置文件
|---database 目录包含数据填充和迁移文件。你还可以把它作为 SQLite 数据库存放目录
|---public 目录包含了入口文件 index.php ,它是进入应用程序的所有请求的入口点
|---resources 目录包含了视图和未编译的资源文件(如 LESS、SASS 或 JavaScript)
|---routes 目录包含了应用的所有路由定义
| |-web.php 路由基本上都要定义在 web.php 文件中
| |-api.php 包含的路由位于 api 中间件组约束之内,支持频率限制功能,这些路由是无状态的,所以请求通过这些路由进入应用需要通过 token 进行认证并且不能访问 Session 状态。
| |-console.php 用于定义所有基于闭包的控制台命令
| |-channels.php 用于注册应用支持的所有事件广播频道
|---storage
| |-app 用于存放应用生成的文件
| |-framework 用于存放框架生成的文件和缓存
| |-logs 存放的是应用的日志文件
|---tests 目录包含自动化测试文件。Laravel 已内置了 PHPUnit 的测试范例供你参考
|---vendor 目录包含你的 Composer 依赖包