2011-12-21 4 views
2

私は50個のコントローラと90個のモデルを持っています。どこでも私は同じ単語「ログイン」と「成功」を繰り返して使用していました。私はコントローラとモデルのどこからでもアクセスできるように、グローバル定数を1つ作りたいと思っています。どのようにして2行に続いて宣言しますか?繰り返しのZendFramework - 私はすべてのコントローラとモデルでこれを利用できるように、静的なグローバル定数をどのように宣言しますか?

defined('MYFIXED_WORD_SUCCESS') 
    || define('MYFIXED_WORD_SUCCESS', "success"); 
defined('MYFIXED_WORD_LOGIN') 
    || define('MYFIXED_WORD_SUCCESS', "login"); 

例:あなたは含める、またはどこでもあなたのアプリケーションでから利用可能であるべきであるbootstrap.phpの中に設定され

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,)); 
+1

ブートストラップが良い場所か、アル中でこれらの定義された定数にアクセスするにはどうすればよいのindex.php – RageZ

答えて

2

は、グローバルアクセス権を持っているこのどこかに置くようにしてください。しかし、それはあなたが欲しいものを、組織的なやり方ではほとんど行うので、Zend_Translateを見てください。 また、application.iniに設定し、Zend_Configを使って取得することもできます。

あなたは/ public/index.phpに置くことができましたが、私の意見ではそのようなものを置く場所ではありません。基本的に決して変更する必要のないファイルをどのようにポーリングするかというような何千というconstがあると想像してください。

2

あなたは、私がapplication/configsフォルダ内のconstants.iniファイルを使用しています、そして、bootstrap.phpの中で、私は定数反復と定義していますZend_Registry

1

であなたの変数を保存することができます:の

/** 
* 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 
+0

だろうexempleのためのayout? –

+0

"レイアウト"は何を意味するのか正確にはわかりませんが、もしそれが ' 'で囲まれていれば利用可能です。結局、それらは定数です(グローバル名前空間)。 – nevvermind

関連する問題