内置Symfonyob娱乐下载事件

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

内置Symfonyob娱乐下载事件

Symfob娱乐下载ony框架是一个HTTP请求-响应框架。在处理HTTP请求期间,框架(或任何使用HttpKernel组件)分派一些事件您可以使用它来修改处理请求的方式以及返回响应的方式。

内核事件

HttpKernel组件分派的每个事件都是KernelEvent,提供以下资料:

getRequestType ()
返回类型的要求(HttpKernelInterface: MASTER_REQUESTHttpKernelInterface: SUB_REQUEST).
getKernel ()
返回处理请求的内核。
getRequest ()
返回当前请求被处理。
isMasterRequest ()
检查这是否是一个主请求。

kernel.request

事件类RequestEvent

在Symfony中,此事件在确定控制器之前非常早地分派。ob娱乐下载向Request中添加信息或提前返回Response以停止对请求的处理是很有用的。

另请参阅

阅读更多有关kernel.request事件

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.request

kernel.controller

事件类ControllerEvent

此事件在要执行的控制器被解析后,但在执行控制器之前分派。初始化控制器稍后需要的东西是很有用的,例如param转换器,甚至完全改变控制器:

1 2 3 4 5 6 7 8 9
使用ob娱乐下载组件HttpKernel事件ControllerEvent公共函数onKernelController(ControllerEvent事件/ /……//控制器可以更改为任何PHP可调用对象事件->setController (myCustomController);}

另请参阅

阅读更多有关kernel.controller事件

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.controller

kernel.controller_arguments

事件类ControllerArgumentsEvent

这个事件在控制器被调用之前被分派。配置要传递给控制器的参数是很有用的。通常,这用于将URL路由参数映射到相应的命名参数;或传递当前请求请求找到Type-hint:

12 3 4 5 6 7 8 9 10 11 12 13
使用ob娱乐下载组件HttpKernel事件ControllerArgumentsEvent公共函数onKernelControllerArguments(ControllerArgumentsEvent事件/ /……//获取控制器和请求参数namedArguments事件->getRequest ()->属性->所有();controllerArguments事件->getArguments ();//设置控制器参数以修改原始参数或添加新参数事件->setArguments (newArguments);}

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.controller_arguments

kernel.view

事件类ViewEvent

此事件在控制器执行后被分派,但是只有如果控制器有返回一个响应对象。将返回值(例如带有HTML内容的字符串)转换为响应Symfony需要的对象:ob娱乐下载

12 3 4 5 6 7 8 9 10 11 12
使用ob娱乐下载组件HttpFoundation响应使用ob娱乐下载组件HttpKernel事件ViewEvent公共函数onKernelView(ViewEvent事件价值事件->getControllerResult ();响应反应();/ /……以某种方式从返回值定制响应事件->setResponse (响应);}

另请参阅

阅读更多有关kernel.view事件

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.view

kernel.response

事件类ResponseEvent

此事件在控制器或任何事件之后被分派kernel.view监听器返回一个响应对象。在发送回响应之前修改或替换响应是很有用的(例如,添加/修改HTTP报头,添加cookie等):

1 2 3 4 5 6 7 8
使用ob娱乐下载组件HttpKernel事件ResponseEvent公共函数onKernelResponse(ResponseEvent事件响应事件->getResponse ();/ /……修改响应对象

另请参阅

阅读更多有关kernel.response事件

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.response

kernel.finish_request

事件类FinishRequestEvent

事件之后分派此事件kernel.response事件。重置应用程序的全局状态是很有用的(例如,翻译器监听器将翻译器的locale重置为父请求之一):

1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载组件HttpKernel事件FinishRequestEvent公共函数onKernelFinishRequest(FinishRequestEvent事件如果= = =parentRequest->requestStack->getParentRequest ()) {返回;}//将子请求的语言环境重置为父请求的语言环境->setLocale (parentRequest);}

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.finish_request

kernel.terminate

事件类TerminateEvent

方法的执行之后,在发送响应之后分派此事件处理()方法)。执行缓慢或复杂的任务(例如发送电子邮件)是很有用的,这些任务不需要完成来发送响应。

另请参阅

阅读更多有关kernel.terminate事件

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.terminate

kernel.exception

事件类ExceptionEvent

在处理HTTP请求期间,一旦发生错误,就立即分派此事件。从错误中恢复或修改作为响应发送的异常详细信息非常有用:

12 3 4 5 6 7 8 9 10 11 12 13 14
使用ob娱乐下载组件HttpFoundation响应使用ob娱乐下载组件HttpKernel事件ExceptionEvent公共函数onKernelException(ExceptionEvent事件异常事件->getThrowable ();响应反应();//根据捕获的异常设置响应对象事件->setResponse (响应);//你也可以设置一个新的异常// $exception = new \ exception('一些特殊异常');/ /事件- > setThrowable($除外);

请注意

TwigBundle注册了一个ErrorListener这将转发请求控件定义的给定控制器exception_listener.controller参数。

ob娱乐下载Symfony使用以下逻辑来确定响应的HTTP状态代码:

请注意

如果您想覆盖异常响应的状态代码(如果没有充分的理由,您不应该这样做),请调用ExceptionEvent: allowCustomResponseCode ()首先,然后在响应上设置状态代码:

1 2 3
事件->allowCustomResponseCode ();响应响应(没有内容的204);事件->setResponse (响应);

在上面的例子中,发送给客户端的状态代码将是204.如果事件- > allowCustomResponseCode (),则内核将根据抛出的异常类型设置适当的状态代码。

另请参阅

阅读更多有关kernel.exception事件

执行这个命令来找出哪些监听器为这个事件注册了,以及它们的优先级:

1
PHP bin/控制台调试:event-dispatcher kernel.exception
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。