我在我的一个类中定义了几个常量,并希望在我的application.ini中使用它们,这可能吗?
logger.main.level = \My\App\Logger::WARNING
这似乎不起作用,它只是将其解析为字符串
答案 0 :(得分:2)
我相信PHP的parse_ini_file()
函数只能访问全局空间中的常量而不能访问类空间。
我无法在任何.ini文件中使用My_Class::MYCONST
或My\Class::MYCONST
。
答案 1 :(得分:2)
如果您想在application.ini
中使用常量的值,则需要在/public/index.php
文件中定义常量(请参阅APPLICATION_PATH
)。
如果你想在你的代码中干净利落地做,我会手动使用日志级别和数值(假设常量是Zend_Log中的数字),因为这个值不太可能改变或者在index.php并定义一个名为LOGLEVEL_WARNING
的新常量(然后您可以从类中静态获取常量值),您可以在application.ini
文件中使用logger.main.level = LOGLEVEL_WARNING
文件。 1}}
我的选择将是application.ini
文件中的数值,如下所示:
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../data/logs/application_" DATESTAMP ".log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 4
看看APPLICATION_PATH
和DATESTAMP
这些是我在index.php中定义的常量
答案 2 :(得分:0)
您可以在application.ini文件中定义常量,然后在控制器中使用以下代码调用它们。
public function init() {
//Getting constants from application.ini file
$registry = Zend_Registry::getInstance();
$this->_constants = $registry->app_config->constants;
}
在application.ini文件中定义常量的位置如下所示
;My Constants
constants.MY_CONSTANT="value"