Zend框架路由器默认用短划线替换大写字母?

时间:2011-08-03 03:08:34

标签: php zend-framework url router zend-route

如果我们在zend控制器的名称和动作之间使用大写字母,例如在默认模块中我们创建

class MyGoodController extends Zend_Controller_Action {

public fooBarAction()
{

}

}

要访问此操作,浏览器网址看起来像mysite.com/my-good/foo-bar

管理此翻译的zf中是否添加了默认的zend路由器? 因为我想使用URL视图帮助器为我生成正确的链接,它不适用于例如视图

$this->url(array('action'=>'fooBar','controller=>'myGood')); 

没有生成正确的网址,而是生成/myGood/fooBa r而不是/my-good/foo-bar

1 个答案:

答案 0 :(得分:1)

如您在评论中所述,您需要使用:

$this->url(array('action'=>'foo-bar','controller=>'my-good'));

URL视图助手根据应用程序中设置的路径组装链接。

根据网址路由匹配请求。

这实际上归结为关注点的分离。帮助程序仅使用路由,并且路由仅处理URL中的内容。根据路线获取正确的班级名称是调度员的担忧。

最好让路线只处理URL中的内容,因为调度员可以更改。使用标准调度程序可能对您有用的东西可能不适合使用其他调度程序的其他人。

要完成您的要求,您始终可以使用自定义视图帮助程序为您进行转换,但假设您从不更改调度程序。