Zend Framework框架的Action大小寫和請求URL大小寫問題

webphp 12年前發布 | 11K 次閱讀 Uliweb Vine Linux

有用過Zend Framework框架開發過項目的網友都知道 Zend Framework (ZF) MVC中的Controller和Action名稱默認是不支持大小寫的,這對于已經習慣了駝峰式代碼風格的開發人員來說,顯然是難以接受的。還好可以設 定前端控制器FrontController的useCaseSensitiveActions參數來讓Zend Framework支持大小寫的Controller與Action命名,代碼如下:

$front = Zend_Controller_Front::getInstance();

$front->setParam('useCaseSensitiveActions',true);
現在如果在 AppController中定義了一個Action叫做 CoderBolgAction();而要訪問這個Action時,URL要寫 http://localhost/app/coder-bolg/,注意Action的第二個大寫字母前加上了'-'。這個倒還沒事,至少問題解決了, 而且加上'-'也不影響SEO,甚至比駝峰式對搜索引擎更為友好。但是又出現了一個讓人更無法容忍的問題:URL也區別大小寫了。就是說如果用戶在URL 中把Action的某個字母輸入成了大寫就無法顯示。暈死……,不過這個也比較好解決。在路由前把ModuleName 、ControllerName 、ActionName 都修改成小寫就解決了。我在Zend_Controller_Action的子類(在我們的項目中讓這個子類繼承 Zend_Controller_Action,我們的Controller再繼承這個類)的init()方法中加上這三行:
$this->_request->setModuleName( strtolower( $this->_request->getModuleName() ) );

$this->_request->setControllerName(strtolower($this->_request->getControllerName()));

$this->_request->setActionName( strtolower( $this->_request->getActionName() ) );

這樣就解決了URL大小寫敏感的問題。

 本文由用戶 webphp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!