我正在尝试从app.php
获取php file(let say /webroot/1/2/getConf.php)
的配置。
我做的是$conf = require('../../../config/app.php');
在getConf.php
中
然后我得到一个错误
注意:在第44行的/config/app.php中使用未定义的常量WWW_ROOT-假定为"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
中定义
您应该使用CakePHP自己的类来读取和写入app.php
配置。
如果您想从配置中读取一个值,只需调用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'];
为了写入配置文件,您需要调用Configure::write($key, $value)
。
使用write()将数据存储在应用程序的配置中:
Configure::write('Company.name','Pizza, Inc.');
Configure::write('Company.slogan','Pizza for your body and soul');
更多信息
- 配置
- 读取配置数据
- 写入配置数据
编辑
纠正错误:在PHP中调用常量时,不要用'
引号将其括起来,这就是导致错误的原因。看看这个答案
编辑
对配置所做的所有更改都存储在运行时。要存储更改,请参阅存储运行时配置和创建或修改配置文件。
@Eric Lee您需要在paths.php
文件中定义常量
路径-project->config->paths.php
这里你可以定义任何常量,也可以在任何控制器中检索,它适用于CakePHP 3.0,所以请尝试这个