我有很多使用方法如何避免Zend重定向方法中的字符串重複?
$this->_redirect('/controller_name/action_name');
重定向到數據處理後,其他動作控制器和動作的一個Zend項目。我觀察到,這創造了很多「不可思議的字符串」,這會傷害DRY原則:如果我更改控制器或操作名稱,則必須在使用它的所有操作中更改此重定向代碼。我想知道Zend是否有更好的方法來避免這種情況。我想過爲所有控制器和動作名稱創建常量,如下所示:
$this->_redirect(HOME_CONTROLLER_INDEX);
但我認爲這種方法不是很好。有更好的解決方案嗎?
你能詳細說明爲什麼你不想使用'定義()'?這似乎是一個不錯的主意。 – jprofitt 2012-01-11 13:36:29
我認爲這會污染太多常量的命名空間,比已經多。 – Karlisson 2012-01-11 13:39:43
如果沒有定義,那麼一些延伸,我會說。擴展控制器(不推薦)或者創建一個動作助手(你必須重寫很多當前的重定向),它將接受一個字符串鍵(比如'HOME_CONTROLLER_INDEX'),然後使用它的內部查找表來查看哪個URL這應該重定向到。您必須僅維護和更新查找表。 – bububaba 2012-01-11 13:45:02