细读 Laravel5.5 文档:安装与配置
安装
创建 Laravel 项目
laravel 可执行文件创建
1
2whereis laravel
laravel: /home/vagrant/.composer/vendor/bin/laravelcomposer 创建
其中
--prefer-dist
会强制 composer 尽量使用各个扩展的压缩包,而不是再去 github 上拉取源码,加快安装速度。反之--prefer-source
会 clone 源码进行安装。1
2
3
4
5
6
7
8
9composer create-project --prefer-dist laravel/laravel project-name
create-project Creates new project from a package into given directory.
Installing laravel/laravel (v5.5.28)
- Installing laravel/laravel (v5.5.28): Loading from cache
ll /home/vagrant/.composer/cache/files/ # 压缩包目录
laravel/
phpunit/
...
目录权限:保证日志、缓存目录可读写
1 | tree -L 2 storage/ bootstrap/ # 以下文件夹在 Centos 上需手动创建并至少赋予 755 权限 |
应用密钥:用于加密 session 等,保证用于数据的安全
1 | php artisan key:generate # Set the application key |
配置 web 服务器
1 | # nginx |
配置
环境配置
.env
文件不应提交给 VCS 跟踪,可以使用
.env.example
文件写明需自己配置的选项,且.env
中的变量会被服务器级别的环境变量覆盖。检查环境配置
laravel 处理请求时,会将
.env
中的配置项加载到$_ENV
全局变量中,env($key, $default = null)
方法取出配置项在不同主机环境上配置同一应用时,可使用
APP_ENV
来为不同的环境做不同的配置在本地开发、生产环境中
APP_ENV
的值可分别设置为local
production
, 可通过App::environment()
来获取环境位置。
获取和动态配置选项
1
2config('links.GOOGLE'); // 获取 config/links.php 中数组键值为 GOOGLE 的值
config(['app.timezone' => 'Aisa/Shanghai']); // 动态设置配置
配置缓存
在不易变动配置的环境如生产环境中,可使用 php artisan config:cache
将所有配置文件合并为 bootstrap/cache/config.php
一个配置文件,减少运行时文件载入数量。
1 | config:cache Create a cache file for faster configuration loading |
维护模式
1 | down Put the application into maintenance mode |
注意:Laravel 的维护模式会导致 queue 的暂停处理,且伴随短时间的不响应(解决方案:envoyer:Zero Downtime PHP Deployment)
文件夹结构
根目录
1 | laravel-project $ tree -L 1 |
App 目录
App 目录是应用的核心代码目录,很多 class 都可以使用 php artisan make:command
来生成,常用的有:
1 | make:controller Create a new controller class |
目录结构:
1 | app $ tree -L 2 |
说明
App目录下默认没有 Models 目录,使用 make:model
默认直接在 app/ 下生成文件,在自己参与开发的项目中,有 44 个 Model 文件,app 文件夹显得十分臃肿。
可创建 app/Models
目录,并修改模型文件的命名空间: namespace App\Models
,即可。
1 | app $ ll | grep .php | wc -l |