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 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
PHP 危险函数全解析
Sep 09 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
探讨各种PHP字符串函数的总结分析
Jun 05 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
CI框架扩展系统核心类的方法分析
May 23 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
php中的buffer缓冲区用法分析
May 31 PHP
Laravel框架控制器的request与response用法示例
Sep 30 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
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
php将时间差转换为字符串提示
2011/09/07 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
PHP加密解密函数详解
2015/10/28 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
js类 from qq
2006/11/13 Javascript
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
canvas的神奇用法
2017/02/03 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Python函数式编程
2017/07/20 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Python字符串的修改方法实例
2019/12/19 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
你应该知道的30个css选择器
2014/03/19 HTML / CSS
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
车间组长岗位职责
2013/12/20 职场文书
银行优秀员工事迹
2014/02/06 职场文书
有创意的广告词
2014/03/18 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python