我正在尝试从app.php
获取php file(let say /webroot/1/2/getConf.php)
的配置。
我做的是$conf = require('../../../config/app.php');
在getConf.php
然后我收到了错误
注意:使用未定义的常量WWW_ROOT - 假设第44行/config/app.php中的“WWW_ROOT”
所以我调试了$conf
,我得到了这些
array (
'debug' => true,
'App' =>
array (
'namespace' => 'App',
'encoding' => 'UTF-8',
'base' => false,
'dir' => 'src',
'webroot' => 'webroot',
'wwwRoot' => 'WWW_ROOT',
正如您所看到的,我不能WWW_ROOT
常量,应该在paths.php
中定义
答案 0 :(得分:1)
您应该使用CakePHP's own class for读取和写入app.php
配置。
如果您想要read配置中的值,则只需拨打Configure::read($key = null)
即可。
用于从应用程序读取配置数据。默认为 CakePHP的重要调试值。如果提供了密钥,则数据为 回。使用上面的write()示例,我们可以读取该数据 回:
Configure::read('Company.name'); // Yields: 'Pizza, Inc.'
Configure::read('Company.slogan'); // Yields: 'Pizza for your body
// and soul'
Configure::read('Company');
// Yields:
['name' => 'Pizza, Inc.', 'slogan' => 'Pizza for your body and soul'];
对于writing配置文件,您需要调用Configure::write($key, $value)
。
使用write()在应用程序的配置中存储数据:
Configure::write('Company.name','Pizza, Inc.');
Configure::write('Company.slogan','Pizza for your body and soul');
更多信息
修改强>
修复错误:在PHP中调用constant时,不要用 '
引号括起来,这是导致错误的原因。 See this answer
修改
对配置所做的所有更改都存储在运行时。要存储更改,请查看Storing Runtime Configuration和Creating or Modifying Configuration Files。
答案 1 :(得分:0)
@Eric Lee你需要在paths.php
文件中定义常量
路径 - project->config->paths.php
这里你可以定义任何常量,并且可以在任何控制器中检索,它适用于CakePHP 3.0,所以请试试这个