我有50个控制器和90个型号。无处不在我正在使用/重复相同的单词'登录'和'成功'。我想创建一个全局常量,以便我可以从我的控制器和模型中的任何位置访问。您如何或在何处声明以下2行。
尝试将其置于某个地方以进行全局访问:
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,));
答案 0 :(得分:2)
您在应用程序中的任何位置都可以使用bootstrap.php中包含或设置的任何内容。但是看看Zend_Translate,因为它几乎按照你想要的方式进行,但是要有条理。 或者,您可以在application.ini中进行设置,然后通过Zend_Config进行操作。
你“可以”把它放在/public/index.php中,但在我看来它不是放置这种东西的地方。想象一下,当你有数以千计的const时,它会如何对一个基本上永远不会改变的文件进行轮询。
答案 1 :(得分:2)
您可以将变量保存在Zend_Registry
中答案 2 :(得分:1)
我在constants.ini
文件夹中使用application/configs
文件,在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);
}
}
constants.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