如何使用匹配器使分析器有条件吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.5,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何使用匹配器使分析器有条件吗
默认情况下,分析器只是激活在开发环境中。但可以想象,开发人员可能希望看到分析器的即使在生产。另一种情况可能是你想展示分析器只有当管理员登录。你可以通过使用匹配器使分析器在这些情况下。
使用内置的匹配器
ob娱乐下载Symfony提供了一个内置的匹配器可以匹配路径和IPs。例如,如果你想要只显示访问的页面时的分析器168.0.0.1
IP,那么你可以使用这个配置:
- YAML
- XML
- PHP
1 2 3 4 5 6
# app / config / config.yml框架:#……分析器:匹配器:知识产权:168.0。0< /span>。1< /span>
1 2 3 4 5 6
< !——app / config / config。xml - - ><框架:配置><框架:分析器知识产权=“168.0.0.1”/ >< /框架:配置>
1 2 3 4 5 6
/ / app / config / config . php美元容器- >loadFromExtension (“框架”,数组(“分析工具”= >数组(“知识产权”= >“168.0.0.1”)));
你也可以设置一个路径
选项定义的路径分析器应该启用。例如,设置它^ /管理/
将使分析器的吗/管理/
url。
创建一个定制的匹配器
您还可以创建一个定制的匹配器。这是一个服务,检查是否启用了分析器应该。要创建服务,创建一个类实现RequestMatcherInterface。这个接口需要一个方法:匹配()。这个方法返回false禁用分析器和真正的使分析器。
时使分析器ROLE_SUPER_ADMIN
是登录,您可以使用类似:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/ / src / AppBundle /分析器/ SuperAdminMatcher.php名称空间AppBundle\分析器;使用ob娱乐下载\组件\安全\核心\SecurityContext;使用ob娱乐下载\组件\HttpFoundation\请求;使用ob娱乐下载\组件\HttpFoundation\RequestMatcherInterface;类SuperAdminMatcher实现了RequestMatcherInterface{受保护的美元securityContext;公共函数__construct(SecurityContext美元securityContext){美元这- >securityContext =美元securityContext;}公共函数匹配(请求美元请求){返回美元这- >securityContext- >isGranted (“ROLE_SUPER_ADMIN”);}}
然后,您需要配置服务:
- YAML
- XML
- PHP
1 2 3 4 5
# app / config / services.yml服务:app.profiler.matcher.super_admin:类:AppBundle \分析器\ SuperAdminMatcher参数:(“@security.context”)
1 2 3 4 5 6
< !——app / config /服务。xml - - ><服务><服务id=“app.profiler.matcher.super_admin”类=“AppBundle \分析器\ SuperAdminMatcher”><论点类型=“服务”id=“security.context”/ >< /服务>
1 2 3 4 5 6 7 8
/ / app / config / services.php使用ob娱乐下载\组件\DependencyInjection\定义;使用ob娱乐下载\组件\DependencyInjection\参考;美元容器- >setDefinition (“app.profiler.matcher.super_admin”,新定义(“分析器AppBundle \ \ SuperAdminMatcher”,数组(新引用(“security.context”)));
现在服务注册,剩下要做的唯一的事就是配置分析器使用这个服务的匹配器:
- YAML
- XML
- PHP
1 2 3 4 5 6
# app / config / config.yml框架:#……分析器:匹配器:服务:app.profiler.matcher.super_admin
1 2 3 4 5 6 7
< !——app / config / config。xml - - ><框架:配置>< !——……- - ><框架:分析器服务=“app.profiler.matcher.super_admin”/ >< /框架:配置>
1 2 3 4 5 6 7
/ / app / config / config . php美元容器- >loadFromExtension (“框架”,数组(/ /……“分析工具”= >数组(“服务”= >“app.profiler.matcher.super_admin”)));
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。