跟我学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程序的php代码
Apr 07 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
php header函数的常用http头设置
Jun 25 PHP
php验证码实现代码(3种)
Sep 07 PHP
php搜索文件程序分享
Oct 30 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
实现php删除链表中重复的结点
Sep 27 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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实现根据时间戳获取周几的方法
2016/02/26 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
2016/08/28 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
javascript数组去重小结
2016/03/07 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python目录与文件名操作例子
2016/08/28 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
Python调用JavaScript代码的方法
2020/10/27 Python
10个示例带你掌握python中的元组
2020/11/23 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
个人近期表现材料
2014/02/11 职场文书
青年文明号创建承诺
2014/03/31 职场文书
合作协议书模板2014
2014/09/26 职场文书
总经理检讨书范文
2015/02/16 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL