跟我学Laravel之配置Laravel


Posted in PHP onOctober 15, 2014

当你需要在运行时访问配置项时,可以使用Config类:

获取一个配置项的值**

Config::get('app.timezone');

如果配置项不存在,你还可以指定返回的默认值:

$timezone = Config::get('app.timezone', 'UTC');

为配置项赋值

注意"点"式语法可以用来访问不同文件里的配置项的值。你还可以在运行时为配置项赋值。:

Config::set('database.default', 'sqlite');

在程序运行时设置的配置值只在本次请求中有效,不会对以后的请求造成影响。

环境配置

通常应用程序根据不同的运行环境确定不同的配置项的值是非常有用的。例如,你也许希望在开发机器与生产机器上使用不同的缓存驱动(cache driver)。根据环境来改变配置就能很容易的达到此目的。

在config目录下创建一个和你的环境名同名的目录,例如local。然后,创建配置文件,这些配置文件中包含你想覆盖的配置选项。例如,要在本地环境中覆盖缓存驱动(cache driver),你可以在app/config/local目录中创建cache.php文件并包含如下内容:

<?php
return array(
    'driver' => 'file',
);

注意: 不要使用'testing'作为环境名,它是专门为单元测试所保留的。
注意,你不需要为基础配置文件中的所有配置项指定值,只需指定你需要覆盖的配置选项即可。环境配置文件将会以"cascade"方式覆盖基本配置文件。

接下来,我们需要指导框架如何确定其运行环境。默认环境总是produciton。然而,你可以在安装目录的根目录下的bootstrap/start.php 文件中设置其他的环境。在该文件中,你可以找到 $app->detectEnvironment方法的调用。传入的数组参数就是用来确定当前运行环境的。你可以根据需要添加其他的环境或机器名。

<?php
$env = $app->detectEnvironment(array(
    'local' => array('your-machine-name'),
));

在此案例中,'local' 是运行环境的名称,'your-machine-name' 是服务器的主机名。在Linux和Mac上,可以通过 hostname 命令来确定所用机器的主机名。

如果你需要更灵活的环境检查方式,可以在调用detectEnvironment时传递一个闭包(Closure) , 这样你就可以按照自己的方式检查环境了:

$env = $app->detectEnvironment(function()

{

    return $_SERVER['MY_LARAVEL_ENV'];

});

获取当前的应用环境

可以通用调用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...

}

维护模式

当应用处于维护模式时,所有的路由都会指向一个自定义的视图。这对于更新应用或执行维护任务时临时"禁用"当前应用是很方便的。App::down方法在app/start/global.php文件里进行了定义,它将在维护模式时将该方法输出的内容展示给用户。

要开启维护模式,只需执行Artisan 的 down命令:

php artisan down

要关闭维护模式,只需执行 up 命令:

php artisan up

当你的应用处于维护模式时,如需展示一个自定义的视图,只要在app/start/global.php文件中加入如下代码即可:

App::down(function()

{

    return Response::view('maintenance', array(), 503);

});

如果传递给 down 方法的闭包返回值为 NULL, 在此次请求中将忽略维护模式。

维护模式 & 队列

当应用程序处于维护模式时, 将不接受新的队列任务 。一旦应用程序退出维护模式,队列任务的处理即恢复正常。

PHP 相关文章推荐
PHP开发中常用的字符串操作函数
Feb 08 PHP
php array_map()数组函数使用说明
Jul 12 PHP
php 文件缓存函数
Oct 08 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
Symfony的安装和配置方法
Mar 17 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
PHP性能优化大全(php.ini)
May 20 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
Jan 22 PHP
跟我学Laravel之安装Laravel
Oct 15 #PHP
跟我学Laravel之快速入门
Oct 15 #PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 #PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 #PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 #PHP
php保存二进制原始数据为图片的程序代码
Oct 14 #PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 #PHP
You might like
php empty函数判断mysql表单是否为空
2010/04/12 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
php绘制一条弧线的方法
2015/01/24 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
PHP实现事件机制的方法
2015/07/10 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
Python编程把二叉树打印成多行代码
2018/01/04 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
机电一体化毕业生自荐信
2014/06/19 职场文书
法定代表人证明书
2014/11/28 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python