程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> zend framework框架中url大小寫問題解決方法

zend framework框架中url大小寫問題解決方法

編輯:PHP綜合

有用過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大小寫敏感的問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved