zend framework框架中url大小写问题解决方法


Posted in PHP onAugust 19, 2014

有用过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大小写敏感的问题。
PHP 相关文章推荐
随时给自己贴的图片加文字的php代码
Mar 08 PHP
PHP HTML代码串截取代码
Dec 29 PHP
php 数组的指针操作实现代码
Feb 08 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
使用PHP编写的SVN类
Jul 18 PHP
迁移PHP版本到PHP7
Feb 06 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
php判断数组是否为空的实例方法
May 10 PHP
深入理解PHP中的global
Aug 19 #PHP
PHP Session机制简介及用法
Aug 19 #PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 #PHP
PHP 导出Excel示例分享
Aug 18 #PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 #PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 #PHP
PHP实现取得HTTP请求的原文
Aug 18 #PHP
You might like
人族 Terran 魔法与科技
2020/03/14 星际争霸
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
js实现3D旋转相册
2020/08/02 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
python调用摄像头的示例代码
2020/09/28 Python
python实现AdaBoost算法的示例
2020/10/03 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
python如何对链表操作
2020/10/10 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
static关键字的用法
2013/10/07 面试题
偷看我的初中毕业鉴定
2014/01/29 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
锦旗标语大全
2014/06/23 职场文书
2014年医务科工作总结
2014/12/18 职场文书
升学宴来宾致辞
2015/07/27 职场文书
Python 匹配文本并在其上一行追加文本
2022/05/11 Python
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python