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 daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 PHP
php下获取http状态的实现代码
May 09 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 PHP
php数组冒泡排序算法实例
May 06 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
Laravel find in set排序实例
Oct 09 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
PHP 输出简单动态WAP页面
2009/06/09 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
初识javascript 文档碎片
2010/07/13 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python实现抖音视频批量下载
2018/06/20 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
《阳光》教学反思
2014/02/23 职场文书
团队精神口号
2014/06/06 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
2014年小学工作总结
2014/11/26 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
花田少年史观后感
2015/06/16 职场文书