跟我学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 MYSQL中插入当前时间
Apr 06 PHP
PHP中几种常见的超时处理全面总结
Sep 11 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
php实现微信公众号无限群发
Oct 11 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
php实现微信扫码支付
Mar 26 PHP
php多文件打包下载的实例代码
Jul 12 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 PHP
php访问对象中的成员的实例方法
Nov 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
微信小程序中的上拉、下拉菜单功能
2020/03/13 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
中专三年学习的个人自我评价
2013/12/12 职场文书
函授教育个人学习的自我评价
2013/12/31 职场文书
物流业务员岗位职责
2014/02/08 职场文书
保险经纪人求职信
2014/03/11 职场文书
可口可乐广告词
2014/03/20 职场文书
护士长竞聘书
2014/03/31 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
Python中的变量与常量
2021/11/11 Python