跟我学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抓取https的内容的代码
Apr 06 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
10款实用的PHP开源工具
Oct 23 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 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中static,const与define的使用区别
2013/06/18 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
php简单复制文件的方法
2016/05/09 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
js实现进度条的方法
2015/02/13 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Tensorflow 实现释放内存
2020/02/03 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
详解Python设计模式之策略模式
2020/06/15 Python
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
运动会跳远广播稿
2014/02/04 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
推荐信格式要求
2014/05/09 职场文书
公司晚会策划方案
2014/05/17 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
公司授权委托书范文
2014/09/21 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
2016公司年会通知范文
2015/04/25 职场文书