|
有用過Zend Framework框架開發(fā)過項(xiàng)目的網(wǎng)友都知道 Zend Framework (ZF) MVC中的Controller和Action名稱默認(rèn)是不支持大小寫的,這對于已經(jīng)習(xí)慣了駝峰式代碼風(fēng)格的開發(fā)人員來說,顯然是難以接受的。還好可以設(shè)定前端控制器FrontController的useCaseSensitiveActions參數(shù)來讓Zend Framework支持大小寫的Controller與Action命名,代碼如下:
復(fù)制代碼 代碼如下:
$front = Zend_Controller_Front::getInstance();
$front->setParam('useCaseSensitiveActions',true);
現(xiàn)在如果在AppController中定義了一個(gè)Action叫做 CoderBolgAction();而要訪問這個(gè)Action時(shí),URL要寫 http://localhost/app/coder-bolg/,注意Action的第二個(gè)大寫字母前加上了'-'。這個(gè)倒還沒事,至少問題解決了,而且加上'-'也不影響SEO,甚至比駝峰式對搜索引擎更為友好。但是又出現(xiàn)了一個(gè)讓人更無法容忍的問題:URL也區(qū)別大小寫了。就是說如果用戶在URL中把Action的某個(gè)字母輸入成了大寫就無法顯示。暈死……,不過這個(gè)也比較好解決。在路由前把ModuleName 、ControllerName 、ActionName 都修改成小寫就解決了。我在Zend_Controller_Action的子類(在我們的項(xiàng)目中讓這個(gè)子類繼承Zend_Controller_Action,我們的Controller再繼承這個(gè)類)的init()方法中加上這三行:
復(fù)制代碼 代碼如下:
$this->_request->setModuleName( strtolower( $this->_request->getModuleName() ) );
$this->_request->setControllerName(strtolower($this->_request->getControllerName()));
$this->_request->setActionName( strtolower( $this->_request->getActionName() ) );
這樣就解決了URL大小寫敏感的問題。
php技術(shù):zend framework框架中url大小寫問題解決方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。