如何使用Apache路由器吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
如何使用Apache路由器吗
谨慎
使用Apache路由器不再被认为是一个很好的实践。小应用程序中增加了路由性能不值得麻烦不断的更新路由配置。
Apache路由器将被删除在Symfony 3和强烈建议不要在您的应用程序ob娱乐下载中使用它。
ob娱乐下载Symfony,开箱即用的快,还提供了各种方法来增加,速度一点调整。其中一个方法是通过让Apache处理直接路线,而不是使用Symfony的任务。ob娱乐下载
改变路由器的配置参数
将Apache路线必须首先调整告诉Symfony使用一些配置参数ob娱乐下载ApacheUrlMatcher
而不是默认的一个:
1 2 3 4
# app / config / config_prod.yml参数:router.options.matcher.cache_class:~#禁用路由器缓存router.options.matcher_class:ob娱乐下载Symfony \组件\ \匹配器\ ApacheUrlMatcher路由
1 2 3 4 5 6 7
< !——app / config / config_prod。xml - - ><参数><参数关键=“router.options.matcher.cache_class”>零< /参数>< !——禁用路由器缓存- - ><参数关键=“router.options.matcher_class”>ob娱乐下载Symfony \组件\ \匹配器\ ApacheUrlMatcher路由< /参数>< /参数>
1 2 3 4 5 6
/ / app / config / config_prod.php美元容器- >setParameter (“router.options.matcher.cache_class”,零);/ /禁用路由器缓存美元容器- >setParameter (“router.options.matcher_class”,“ob娱乐下载Symfony \组件\ \匹配器\ ApacheUrlMatcher路由的);
提示
请注意,ApacheUrlMatcher扩展UrlMatcher所以即使你不再生mod_rewrite的规则,一切都将结束时(因为工作ApacheUrlMatcher::匹配()
调用父::匹配()
完成)。
生成mod_rewrite规则
测试工作,为AppBundle创建一个非常基本的路线:
1 2 3 4
# app / config / routing.yml你好:路径:/ hello /{名称}默认值:{_controller:AppBundle:问候:你好}
1 2 3 4
< !——app / config /路由。xml - - ><路线id=“你好”路径=“你好/{名称}”><默认的关键=“_controller”>AppBundle:问候:你好< /默认的>< /路线>
1 2 3 4
/ / app / config / routing.php美元集合- >add (“你好”,新路线(“/ hello /{名称}”,数组(“_controller”= >“AppBundle:问候:你好”)));
现在生成mod_rewrite规则:
1
php应用程序/控制台路由器:美元dump-apache - e =刺激——没有调试
输出应该大致如下:
1 2 3 4 5 6 7
#跳过“真实”的请求RewriteCond% {REQUEST_FILENAME}- fRewriteRule* -(QSA L)#你好RewriteCond% {REQUEST_URI}^ / hello /([^ /] + ?)美元RewriteRule. * app.php[QSA L E = _ROUTING__route:你好,E = _ROUTING_name: % 1, E = _ROUTING__controller: AppBundle \: \打招呼:你好)
现在,您可以重写web / . htaccess
使用新的规则,所以在这个例子应该是这个样子:
1 2 3 4 5 6 7 8 9 10 11
< IfModule mod_rewrite.c >RewriteEngine在#跳过“真实”的请求RewriteCond% {REQUEST_FILENAME}- fRewriteRule* -(QSA L)#你好RewriteCond% {REQUEST_URI}^ / hello /([^ /] + ?)美元RewriteRule. * app.php[QSA L E = _ROUTING__route:你好,E = _ROUTING_name: % 1, E = _ROUTING__controller: AppBundle \: \打招呼:你好)< / IfModule >
请注意
上面的程序应该每次添加/更改路线,如果你想充分利用这个设置。
就是这样!你现在将使用Apache的路线。
额外的调整
节省处理时间,出现的变化请求
来ApacheRequest
在web / app.php
:
1 2 3 4 5 6 7 8 9 10 11 12
/ /网络/ app.phprequire_once__DIR__。“/ . . / app / bootstrap.php.cache”;require_once__DIR__。“/ . . / app / AppKernel.php”;/ / require_once __DIR__。“/ . . / app / AppCache.php”;使用ob娱乐下载\组件\HttpFoundation\ApacheRequest;美元内核=新AppKernel (“刺激”,假);美元内核- >loadClassCache ();/ /内核= new AppCache美元($内核);美元内核- >处理(ApacheRequest::createFromGlobals ())- >send ();
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。