跟我学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 23 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
详解php比较操作符的安全问题
Dec 03 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
php+ajax实现仿百度查询下拉内容功能示例
Oct 20 PHP
php双层循环(九九乘法表)
Oct 23 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 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批量检测并去除文件BOM头代码实例
2014/05/08 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
PHP SOCKET编程详解
2015/05/22 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
用javascript实现页面打印的三种方法
2007/03/05 Javascript
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
python基础教程之常用运算符
2014/08/29 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
Python全排列操作实例分析
2018/07/24 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
Python模块常用四种安装方式
2020/10/20 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
金属材料工程个人求职的自我评价
2013/12/04 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
2014年领班工作总结
2014/11/25 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
办公室禁烟通知
2015/04/23 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
SpringBoot 集成Redis 过程
2021/06/02 Redis
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs