我正在编写处理AccessDeniedException的服务,我找到了一种从Using Symfony2's AccessDeniedHandlerInterface
解决它的方法 firewalls:
secured_area:
.....
access_denied_handler: kernel.listener.accessDenied.handler
在此处定义服务:
services:
kernel.listener.accessDenied.handler:
class: %kernel.listener.accessDenied.handler.class%
arguments: ["@service_container"]
tags:
- { name: 'kernel.event_listener', event: 'security.kernel_response', method: 'handle' }
但我不知道在哪里可以找到这些属性的定义,例如 event:'security.kernel_response'。 'security.kernel_response'在哪里定义,哪里可以获取其他事件列表?
对于像'access_denied_handler'这样的其他处理程序,我如何确定相应服务的标签?
答案 0 :(得分:11)
调试Symfony容器:
要调试服务容器,请使用以下控制台命令之一
app/console debug:container
app/console debug:container --tags
app/console debug:container --tag=form.type
app/console debug:container --show-private
app/console container:debug
app/console container:debug --tags
app/console container:debug --tag=form.type
app/console container:debug --show-private
要快速查找服务/标记(或symfony2上的标记服务。< 2),请使用 grep (linux,osx)或 findstr (windows)像这样:
app/console container:debug | grep form
或
app/console container:debug | findstr form