跟我学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中iconv函数使用方法
May 24 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
php实现爬取和分析知乎用户数据
Jan 26 PHP
php上传大文件设置方法
Apr 14 PHP
关于php中一些字符串总结
May 05 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
PHP构造二叉树算法示例
Jun 21 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
php7性能提升的原因详解
Oct 13 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 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php GeoIP的使用教程
2011/03/09 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
document.all与WEB标准
2020/05/13 Javascript
用javascript自动显示最后更新时间
2007/03/15 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
node.js制作一个简单的登录拦截器
2020/02/10 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
python 命令行传入参数实现解析
2019/08/30 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
实习生自我鉴定范文
2013/12/05 职场文书
原材料检验岗位职责
2014/03/15 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Python必备技巧之函数的使用详解
2022/04/04 Python
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js