## 简介
所有 Laravel 框架的配置文件都放置在 `config` 目录下。 每个选项都有说明,因此你可以轻松地浏览这些文档,并且熟悉这些选项配置。
## 完成安装后
#### 命名你的应用程序
在安装 Laravel 后,你可以「命名」你的应用程序。默认情况下,app 的目录是在 App 的命名空间 下,通过 Composer 使用 PSR-4 自动载入规范 自动加载。不过,你可以轻松地通过 Artisan 命令 `app:name` 来修改命名空间,以配合你的应用程序名称。
举例来说,假设你的应用程序叫做「 Horsefly 」,你可以从安装的根目录执行下面的命令:
~~~
php artisan app:name Horsefly
~~~
重命名你的应用程序是完全可选的,你也可以保留原有的命名空间 App 。
#### 其他配置
Laravel 几乎不需配置就可以马上使用。你可以自由的开始开发!然而,你可以浏览 `config/app.php` 文件和其他的文档。你可能希望依据你的本机而做更改,文件包含数个选项如时区和语言环境。
一旦 Laravel 安装完成,你应该同时 配置本机环境。
> 注意: 你不应该在正式环境中将 `app.debug` 配置为 `true` 。绝对!千万不要!
## 权限
Laravel 框架某些目录需要额外权限:storage 以及 vendor 目录必须让服务器有写入权限。
#### 取得配置值
你可以很轻松的使用 Config facade 取得你的配置值:
~~~
$value = Config::get('app.timezone');
Config::set('app.timezone', 'America/Chicago');
~~~
你也可以使用 config 辅助方法:
~~~
$value = config('app.timezone');
~~~
## 环境配置
通常应用程序常常需要根据不同的执行环境而有不同的配置值。例如,你会希望在你的本机开发环境上会有与正式环境不同的缓存驱动(cache driver),通过配置文件,就可以轻松完成。
Laravel 通过 `DotEnv Vance Lucas` 写的一个 PHP 类库。 在全新安装好的 Laravel 里,你的应用程序的根目录下会包含一个 `.env.example` 文件。如果你通过 Composer 安装 Laravel,这个文件将自动被命名为 `.env`,不然你应该手动更改文件名。
当你的应用程序收到请求,这个文件所有的变量会被加载到 `$_ENV` 这个 PHP 超级全局变量里。你可以使用辅助方法 `env` 查看这些变量。事实上,如果你查看过 Laravel 配置文件,你会注意到几个选项已经在使用这个辅助方法!
根据你的本机服务器或者线上环境需求,你可以自由的修改你的环境变量。然而, 你的 `.env` 文件不应该被提交到应用程序的版本控制系统,因为每个开发人员或服务器使用你的应用程序可能需要不同的环境配置。
如果你是一个团队的开发者,不妨将 .env.example 文件包含到你的应用程序。通过例子配置文件里的预留值,你的团队中其他开发人员可以清楚地看到执行你的应用程序所需的哪些环境变量。
## 取得目前应用程序的环境
你可以通过 Application 实例中的 environment 方法取得目前应用程序的环境:
~~~
$environment = $app->environment();
~~~
你也可以传递参数至 `environment` 方法中,来确认目前的环境是否与参数相符合:
~~~
if ($app->environment('local'))
{
// The environment is local
}
if ($app->environment('local', 'staging'))
{
// The environment is either local OR staging...
}
~~~
如果想取得应用程序的实例,可以通过服务容器的 `Illuminate\Contracts\Foundation\Application contract` 来取得。当然,如果你想在服务提供者中使用,应用程序实例可以通过实例变量 $this->app 取得。
也能通过 `App facade` 或者辅助方法 app 取得应用程序实例:
~~~
$environment = app()->environment();
$environment = App::environment();
~~~
## 配置缓存
为了让你的的应用程序提升一些速度,你可以使用 Artisan 命令 config:cache 将所有的配置文件缓存到单一文件。通过命令会将所有的配置选项合并成一个文件,让框架能够快速加载。
通常来说,你应该将执行 config:cache 命令作为部署工作的一部分。
## 维护模式
当你的应用程序处于维护模式时,所有的路由都会指向一个自定的视图。当你要更新或维护网站时,「关闭」整个网站是很简单的。维护模式会检查包含在应用程序的默认中间件堆栈。如果应用程序处于维护模式,HttpException 会抛出 503 的状态码。
启用维护模式,只需要执行 Artisan 命令 `down`:
~~~
php artisan down
~~~
关闭维护模式,请使用 Artisan 命令 `up`:
~~~
php artisan up
~~~
## 维护模式的响应模板
维护模式响应的默认模板放在 `resources/views/errors/503.blade.php`。
## 维护模式与队列
当应用程序处于维护模式中,将不会处理任何队列工作。所有的队列工作将会在应用程序离开维护模式后继续被进行。
## 优雅链接
#### Apache
Laravel 框架通过 `public/.htaccess` 文件来让网址中不需要 index.php。如果你的服务器是使用 Apache ,请确认是否有开启 `mod_rewrite` 模块。
假设 Laravel 附带的 .htaccess 文件在 Apache 无法生效的话,请尝试下面的方法:
~~~
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
~~~
If your web host doesn't allow the FollowSymlinks option, try replacing it with Options +SymLinksIfOwnerMatch.
#### Nginx
若使用 Nginx ,可以在你的网站配置中增加下面的配置,以开启「优雅链接」:
~~~
location / {
try_files $uri $uri/ /index.php?$query_string;
}
~~~
当然,如果你使用 Homestead 的话,优雅链接会自动的帮你配置完成。
- 前言
- 发行说明/L5新特性
- 升级向导
- 升级到 5.0.16
- 从 4.2 升级到 5.0
- 从 4.1 升级到 4.2
- 从 4.1.x 升级到 4.1.29
- 从 4.1.25 升级到 4.1.26
- 从 4.0 升级到 4.1
- 贡献向导
- 环境配置
- 安装
- 配置
- 基本功能
- 路由
- 基本路由
- CSRF 保护
- 方法欺骗
- 路由参数
- 命名路由
- 路由群组
- 路由模型绑定
- 抛出 404 错误
- 中间件
- 建立中间件
- 注册中间件
- 可终止中间件
- 控制器
- 基础控制器
- 控制器中间件
- 隐式控制器
- RESTful 资源控制器
- 请求
- 取得请求实例
- 取得输入数据
- 旧输入数据
- Cookies
- 上传文件
- 其他的请求信息
- 响应
- 基本响应
- 重定向
- 其他响应
- 响应宏
- 系统架构
- 服务提供者
- 基本提供者例子
- 注册提供者
- 缓载提供者
- 服务容器
- 基本用法
- 将接口绑定到实现
- 上下文绑定
- 标签
- 实际应用
- 容器事件
- 参考:理解PHP 依赖注入|Laravel IoC容器
- Contracts
- 为什么用 Contracts
- Contract 参考
- 如何使用 Contracts
- Facades
- 实际用法
- 建立 Facades
- 模拟 Facades
- Facade 类参考
- 请求的生命周期
- 生命周期概要
- 聚焦于服务提供者
- 应用程序结构
- 根目录
- App 目录
- 为应用程序配置命名空间
- 系统服务
- 认证
- 用户认证
- 取得经过认证的用户
- 保护路由
- HTTP 基本认证
- 忘记密码与重设
- 第三方登陆认证
- 交易
- 配置文件
- 订购方案
- 一次性付款
- Single Charges
- 免信用卡试用
- 订购转换
- 订购数量
- 取消订购
- 恢复订购
- 确认订购状态
- 处理失败订阅
- 处理其它 Stripe Webhooks
- 收据
- 缓存
- 配置
- 缓存用法
- 递增与递减
- 缓存标签
- 缓存事件
- 数据库缓存
- 集合
- Command Bus
- 建立命令
- 调用命令
- 命令队列
- 命令管道
- 核心扩展
- 管理者和工厂
- 缓存
- Session
- 认证
- 基于服务容器的扩展
- Laravel Elixir
- 安装与配置
- 使用方式
- Gulp
- Custom Tasks and Extensions
- 加密
- Envoy 任务执行器
- 安装
- 执行任务
- 多服务器
- 并行执行
- 任务宏
- 通知
- 更新 Envoy
- 错误与日志
- 配置
- 错误处理
- HTTP 异常
- 日志
- 事件
- 基本用法
- 事件处理队列
- 事件订阅者
- 文件系统与云存储
- 配置文件
- 基本用法
- 自定义文件系统
- 哈希
- 基本用法
- 辅助方法
- 数组
- 路径
- 路由
- 字符串
- 网址(URL)
- 其他
- 本地化
- 语言文件
- 基本用法
- 复数
- 验证
- 覆写扩展包的语言文件
- 邮件
- 配置
- 基本用法
- 内嵌附件
- 邮件队列
- 邮件与本地端开发
- 扩展包开发
- 视图
- 语言
- 配置文件
- 公共资源
- 发布分类文件
- 路由
- 分页
- 配置
- 使用
- 追加分页链接
- 转换至 JSON
- 队列
- 设置
- 基本用法
- 队列闭包
- 执行一个队列监听
- 常驻队列处理器
- 推送队列
- 已失败的工作
- 会话
- 配置
- 使用 Session
- 暂存数据(Flash Data)
- 数据库 Sessions
- Session 驱动
- 模板
- Blade 模板
- Blade 控制语法结构
- Blade 扩展
- 参考:@section与@yield 介绍
- 单元测试
- 定义并执行测试
- 测试环境
- 从测试调用路由
- 模拟 Facades
- 框架 Assertions
- 辅助方法
- 重置应用程序
- 表单验证
- 基本用法
- 控制器验证
- 表单请求验证
- 使用错误信息
- 错误信息 & 视图
- 可用验证规则
- 条件验证规则
- 自定义错误信息
- 自定义验证规则
- 数据库
- 使用基础
- 配置
- 读取/写入连接
- 执行查找
- 数据库事务处理
- 获取连接
- 日志记录
- 查询构造器
- Selects
- Joins
- 高级 Wheres
- 聚合
- 原生表达式
- 添加
- 更新
- 删除
- Unions
- 悲观锁定 (Pessimistic Locking)
- Eloquent ORM
- 基本用法
- 批量赋值
- 新增,更新,删除
- 软删除
- 时间戳
- 范围查询
- Global Scopes
- 关联
- 关联查询
- 预载入
- 新增关联模型
- 更新上层时间戳
- 使用枢纽表
- 集合
- 获取器和修改器
- 日期转换器
- 属性类型转换
- 模型事件
- 模型观察者
- 模型 URL 生成
- 转换成数组 / JSON
- 结构生成器
- 建立与删除数据表
- 加入字段
- 修改字段
- 修改字段名称
- 移除字段
- 检查是否存在
- 加入索引
- 外键
- 移除索引
- 移除时间戳记和软删除
- 保存引擎
- 迁移和数据填充
- 建立迁移文件
- 执行迁移
- 回滚迁移
- 数据填充
- Redis
- 配置
- 使用方式
- 管道
- 开发包
- Confide 用户身份认证
- Entrust 权限管理
- Shoppingcart 购物车
- Genertators 代码生成工具
- IDE Helper IDE助手
- Artisan 命令行工具
- 概览
- 用法
- 在命令行接口以外的地方调用命令
- 定时调用 Artisan 命令
- 开发
- 建立自定义命令
- 注册自定义命令