我一直想知道這一點。拿這個例子來說吧:如何縮短長代碼,但仍然保持Zend框架的哲學
<?= Zend_Registry::get('translate')->_('translate me!');
我有我的觀點被這樣的代碼弄糊塗了。我的同事們也經常抱怨說,爲了獲得翻譯它有很多類型的合理性,並且由於它在整個地方重複,所以它變得單調乏味。
他們中有些人會喜歡它的包裝都在很短的名稱,如一些全局函數:
function t($text){
return Zend_Registry::get('translate')->_($text);
}
但對我來說,這不是良好的設計和有點違背把我的翻譯對象在註冊表中的想法。
所以我想知道別人怎樣避免編寫所有這些不必要的代碼。
一個解決辦法是在我的控制器做:
$this->view->t = Zend_Registry::get('translate);
,然後在我的觀點只是:
<?= $this->t('translate me!'); ?>
另一個辦法是創造,沒有工作視圖助手:
<?= this->translate('translate me!');?>
但它是更多的工作,並再次增加了一層邏輯頂部已經非常強大和straig thforward Zend_Registry + ZendTranslate。
這可能更適合http://codereview.stackexchange.com。 FWIW,我想我會更關心可讀性。從這個角度來看,我喜歡最後一個例子。這比第一個更清楚。如果命名'translate'而不是't',全局函數也可以被我接受。 – tvanfosson 2012-02-29 15:43:02
如果它關閉,我會在codereview上發佈這個問題。感謝您的輸入! – Iznogood 2012-02-29 15:47:58
其實只是把它發佈到codereview。 :) – Iznogood 2012-02-29 15:50:41