跟我学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(1)
Oct 09 PHP
phpmyadmin操作流程
Oct 09 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
linux下编译安装memcached服务
Aug 03 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
解决PhpStorm64不能启动的问题
Jun 20 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
php实现的在线人员函数库
2008/04/09 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
python验证码图片处理(二值化)
2019/11/01 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
Python 实现简单的客户端认证
2020/07/29 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
活动志愿者自荐信
2014/01/27 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
情人节寄语大全
2014/04/11 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers