本文整理汇总了PHP中Symfony\Component\EventDispatcher\EventDispatcher::match方法的典型用法代码示例。如果您正苦于以下问题:PHP EventDispatcher::match方法的具体用法?PHP EventDispatcher::match怎么用?PHP EventDispatcher::match使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\EventDispatcher\EventDispatcher
的用法示例。
在下文中一共展示了EventDispatcher::match方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handle
/**
* This method defines the workflow from the HTTP Request and ends with a Response.
* HttpKernel allows us to use event listeners and does the work by dispatching those events.
* Basically we are creating an EventDispatcher and a controller resolver in this handle method.
*
* @param Request $request The Request instance
* @param int $type The default type request [MASTER_REQUEST = 1, SUB_REQUEST = 2]
* @param bool $catch The option to catch exceptions or not
*
* @throws \ResourceNotFoundException When a controller not found occurs during processing
* @throws \Exception When an Exception occurs during processing
*
* @return Response The current Response interface
*
* @api
*/
public function handle(Request $request, int $type = HttpKernelInterface::MASTER_REQUEST, bool $catch = true) : Response
{
$this->matcher->getContext()->fromRequest($request);
try {
$request->attributes->add($this->matcher->match($request->getPathInfo()));
$controller = $this->resolver->getController($request);
$arguments = 'boolean' === gettype($controller) ? $this->throwControllerResolverExceptionError() : $this->resolver->getArguments($request, $controller);
$response = call_user_func_array($controller, $arguments);
} catch (ResourceNotFoundException $e) {
$response = new Response('Not Found', 404);
} catch (\Exception $e) {
$response = new Response('An error occurred', 500);
}
/* Dispatch a response event */
$this->dispatcher->dispatch('response', new ResponseEvent($response, $request));
return $response;
}