Zend Framework框架的Action大小寫和請求URL大小寫問題
有用過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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!