跟我学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数组内部指针操作函数
Oct 12 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
smarty简单应用实例
Nov 03 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
详解将数据从Laravel传送到vue的四种方式
Oct 16 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中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
python 类详解及简单实例
2017/03/24 Python
django定期执行任务(实例讲解)
2017/11/03 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
南威尔士家居商店:Leekes
2016/10/25 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
共筑中国梦演讲稿
2014/04/23 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
2015年共青团工作总结
2015/05/15 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
springboot中的pom文件 project报错问题
2022/01/18 Java/Android