CakePHP 3中的自定义配置文件

时间:2017-03-28 09:24:49

标签: php cakephp configuration cakephp-3.0 cakephp-3.3

我有一个CakePHP 3.3.14应用程序,我已创建了2个子目录,webroot/data/downloads/webroot/data/master

我想将这些路径放在自定义配置文件中,并在Controller中引用它们。但是,我无法看到如何做到这一点。

我已经关注了documentation on Configuration,但不是很清楚。

所以我做了什么:

  • 创建config/my_config.php
  • 上述文件定义了一个数组:

    return [ 'downloadsPath' => 'webroot/data/downloads/', 'masterPath' => 'webroot/data/master/' ];
    
  • config/bootstrap.php我放了Configure::load('my_config', 'default');

如何在控制器中使用它?如果我放Configure::read('my_config.masterPath');,则会出错: Class' App \ Controller \ Configure'找不到

如果我将use Cake\Core\Configure;添加到控制器顶部,则会清除错误,但返回值为null

debug(Configure::read('my_config.masterPath')); // null 

1 个答案:

答案 0 :(得分:7)

加载另一个配置文件只会扩展默认的App.config。所以只需使用\Cake\Core\Configure::read('masterPath')就可以了。

修改

如果你的目标是拥有不同的配置路径,你可以这样做:

// my_config.php
return [
    'MyConfig' => [
        'masterPath' => '...',
        ...
    ]
]

然后使用如下配置:

<?= \Cake\Core\Configure::read('MyConfig.masterPath') ?>