跟我学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 日期时间函数的高级应用技巧
Oct 10 PHP
php+mysql 实现身份验证代码
Mar 24 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
Eclipse的PHP插件PHPEclipse安装和使用
Jul 20 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
php可变长参数处理函数详解
Feb 22 PHP
实例讲解PHP表单处理
Feb 15 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 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加密解密的代码
2006/10/09 PHP
PHP 文件扩展名 获取函数
2009/06/03 PHP
PHP面向对象概念
2011/11/06 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
js 深拷贝函数
2008/12/04 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
numpy 声明空数组详解
2019/12/05 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
python yield和Generator函数用法详解
2020/02/10 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
医药工作者的求职信范文
2013/09/21 职场文书
消防先进事迹材料
2014/02/10 职场文书
经典广告词大全
2014/03/14 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python
python数字图像处理实现图像的形变与缩放
2022/06/28 Python