跟我学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 相关文章推荐
用Flash图形化数据(一)
Oct 09 PHP
用PHP查询域名状态whois的类
Nov 25 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
Symfony2联合查询实现方法
Mar 18 PHP
PHP自定义错误用法示例
Sep 28 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
Oct 16 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 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
基于文本的访客签到簿
2006/10/09 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
Symfony的安装和配置方法
2016/03/17 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
python如何更新包
2020/06/11 Python
python如何删除文件、目录
2020/06/23 Python
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
关于梦想的演讲稿
2014/05/05 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
技术员岗位职责范本
2015/04/11 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS