Php Zend framework Router默认情况下将大写字母替换为破折号?
如果我们在zend控制器的名称和动作之间使用大写字母,例如在我们创建的默认模块中Php Zend framework Router默认情况下将大写字母替换为破折号?,php,zend-framework,url,router,zend-route,Php,Zend Framework,Url,Router,Zend Route,如果我们在zend控制器的名称和动作之间使用大写字母,例如在我们创建的默认模块中 class MyGoodController extends Zend_Controller_Action { public fooBarAction() { } } 而访问此动作浏览器的url类似于mysite.com/my-good/foo-bar zf内部是否添加了管理此转换的默认zend路由器? 因为我想使用URL视图帮助器为我生成正确的链接,但它不适用于视图中的链接 $this->url(a
class MyGoodController extends Zend_Controller_Action {
public fooBarAction()
{
}
}
而访问此动作浏览器的url类似于mysite.com/my-good/foo-bar
zf内部是否添加了管理此转换的默认zend路由器?
因为我想使用URL视图帮助器为我生成正确的链接,但它不适用于视图中的链接
$this->url(array('action'=>'fooBar','controller=>'myGood'));
未生成正确的url,它生成了
/myGood/fooBa
r而不是/myGood/foo bar
,如您需要使用的注释中所述:
$this->url(array('action'=>'foo-bar','controller=>'my-good'));
URL视图帮助器根据应用程序中的路由集组装链接
路由基于URL匹配请求
这实际上可以归结为关注点的分离。助手仅使用路由,而路由也仅处理URL中的内容。基于路由获取正确的类名是调度器关心的问题
最好让路由只处理URL中的内容,因为调度器可以更改。使用标准dispatcher可能适合您的内容可能不适合使用其他dispatcher的其他人
要完成您的要求,您可以始终使用自定义视图帮助器为您进行转换,但前提是您从未更改dispatchers 如您需要使用的注释中所述:
$this->url(array('action'=>'foo-bar','controller=>'my-good'));
URL视图帮助器根据应用程序中的路由集组装链接
路由基于URL匹配请求
这实际上可以归结为关注点的分离。助手仅使用路由,而路由也仅处理URL中的内容。基于路由获取正确的类名是调度器关心的问题
最好让路由只处理URL中的内容,因为调度器可以更改。使用标准dispatcher可能适合您的内容可能不适合使用其他dispatcher的其他人
要完成您的要求,您可以始终使用自定义视图帮助器为您进行转换,但前提是您从未更改dispatchers 为什么不直接使用
$this->url(数组('action'=>'foo-bar','controller=>'my-good')
?@brady vitrano如果没有其他默认路由器执行此魔术,那么zf为什么不检查url view helper实现中的大写字母,从而在默认情况下为我们创建正确的url?为什么不直接使用$this->url(数组('action'=>'foo-bar','controller=>'my-good')代码>?@brady vitrano如果没有其他默认路由器执行此魔法,那么zf为什么不检查url视图帮助器实现中的大写字母,从而在默认情况下为我们创建正确的url?