首页 > 开发 > PHP > 正文

跟我学Laravel之配置Laravel

2024-05-04 22:18:28
字体:
来源:转载
供稿:网友

当你需要在运行时访问配置项时,可以使用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 方法来判断应用环境是否与某个给定值匹配:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表