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显示MySQL数据的三种方法
Jun 05 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
PHP编程中尝试程序并发的几种方式总结
Mar 21 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
Aug 08 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 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
全国中波电台频率表
2020/03/11 无线电
PHP 输出简单动态WAP页面
2009/06/09 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
用js怎么把&字符换成"&amp:"
2006/10/19 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
实现Python与STM32通信方式
2019/12/18 Python
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
英语专业学生的自我评价
2013/12/30 职场文书
校园之星获奖感言
2014/01/29 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
诉讼授权委托书
2014/10/15 职场文书
债务授权委托书范本
2014/10/17 职场文书
公司介绍信范文
2015/01/31 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
话题作文之关于呼唤
2019/11/29 职场文书