Php ZendFramework-如何声明静态全局常量,以便在我的所有控制器和模型中都可以使用它?
我有50个控制器和90个型号。无论在哪里,我都在使用/重复相同的词“登录”和“成功”。我想使一个全局常量,以便我可以从控制器和模型中的任何位置访问。您如何或在何处声明以下2行 尝试将其放置在具有全局访问权限的位置:Php ZendFramework-如何声明静态全局常量,以便在我的所有控制器和模型中都可以使用它?,php,zend-framework,Php,Zend Framework,我有50个控制器和90个型号。无论在哪里,我都在使用/重复相同的词“登录”和“成功”。我想使一个全局常量,以便我可以从控制器和模型中的任何位置访问。您如何或在何处声明以下2行 尝试将其放置在具有全局访问权限的位置: defined('MYFIXED_WORD_SUCCESS') || define('MYFIXED_WORD_SUCCESS', "success"); defined('MYFIXED_WORD_LOGIN') || define('MYFIXED_WORD_SU
defined('MYFIXED_WORD_SUCCESS')
|| define('MYFIXED_WORD_SUCCESS', "success");
defined('MYFIXED_WORD_LOGIN')
|| define('MYFIXED_WORD_SUCCESS', "login");
重复的示例:
if (count($result) > 0)
{
$return = array(
'flag' => 'login', // replace it with MYFIXED_WORD_
'result'=> 'success',// replace it with MYFIXED_WORD_
'extra' => array(group'=>$rec->group,));
在bootstrap.php中包含或设置的任何内容都应该可以从应用程序中的任何位置获得。但请看一看,因为它几乎是你想要的,但以一种有组织的方式。 或者,您可以在application.ini中设置它,然后通过
你“可以”把它放在/public/index.php中,但在我看来,它不是放这种东西的地方。想象一下,当你有成千上万个这样的常量时,它将如何处理一个基本上永远不会更改的文件。你可以将变量保存在中。我在
应用程序/configs
文件夹中使用常量.ini
文件,在Bootstrap.php中,我正在迭代和定义常量:
/**
* Loads app-wide constants from ini file
*/
protected function _initDefineConstants()
{
$constantFile = APPLICATION_PATH . '/configs/constants.ini';
$iniParser = new Zend_Config_Ini($constantFile);
foreach ($iniParser->toArray() as $constName => $constantVal) {
define($constName, $constantVal);
}
}
常量.ini的示例:
ADMIN_PRODUCTS_PER_PAGE = 20
PRODUCT_VIEW_REC = 4 ; number of recommended products in Product view
; columns in "options" table
OPT_COL_VAT = vat
OPT_TEL_ORDER = telephone_order
OPT_QUICK_EMAIL = quick_order_email
bootstrap是一个很好的位置或索引。phpHow你在布局中访问这些定义的常量吗?例如,我不知道“布局”到底是什么意思,但是如果它是包装在
中的东西,它们是可用的。它们毕竟是常量(全局名称空间)。