跟我学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日历程序
Dec 06 PHP
用php实现的下载css文件中的图片的代码
Feb 08 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
浅谈php提交form表单
Jul 01 PHP
PHP实现数组array转换成xml的方法
Jul 19 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
利用ajax+php实现商品价格计算
Mar 31 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基于session实现数据库交互的类实例
2015/08/03 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP最常用的正则表达式
2017/02/13 PHP
详解php用static方法的原因
2018/09/12 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
详解Python中dict与set的使用
2015/08/10 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
公司财务工作总结的自我评价
2013/11/23 职场文书
七一党建活动方案
2014/01/28 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis