gpt4 book ai didi

php - 在 Symfony kernel.controller 事件中,ControllerEvent::getController() 的返回类型是什么?

转载 作者:行者123 更新时间:2023-12-04 07:34:31 25 4
gpt4 key购买 nike

在 Symfony 5.3 中,我有一个 EventSubscriberKernelEvents::CONTROLLER 事件。

class PrivateAPIEventSubscriber implements EventSubscriberInterface
{

public static function getSubscribedEvents(): array
{
return [
KernelEvents::CONTROLLER => ['onKernelController', 2],
];
}

public function onKernelController(ControllerEvent $event): void
{

$controller = $event->getController();

dd($controller);

我遇到的问题是,对于我的大部分请求,getController() 方法返回如下数组:

PrivateAPIEventSubscriber.php on line 42:
array:2 [▼
0 => App\Controller\CP\SecurityController {#241 ▶}
1 => "login"
]

第 0 个元素是 $controller 对象,第 1 个元素是函数。

但是对于错误页面(例如没有路由)

PrivateAPIEventSubscriber.php on line 42:
Symfony\Component\HttpKernel\Controller\ErrorController {#468 ▼
-kernel: Symfony\Component\HttpKernel\HttpKernel {#141 ▶}
-controller: "error_controller"
-errorRenderer: Symfony\Component\ErrorHandler\ErrorRenderer\SerializerErrorRenderer {#469 ▶}
}

我找不到此方法的文档,源代码没有帮助(ConrtrollerEvent 中的 $controller 变量未输入),我担心可能有还有一些我没有处理的情况(比如返回更大的数组或多维数组)

那么所有预期的返回类型是什么?

最佳答案

source是你的 friend :

public function getController(): callable
{
return $this->controller;
}

它是类型提示的,所以很明显它返回了一个callable。你可以打电话的东西。它不会返回“不同的返回类型”,而是可以具有多种形状的单一返回类型,只要它是有效的可调用即可。

要查看数据类型的详细信息,您可以随时查看 docs .

关于php - 在 Symfony kernel.controller 事件中,ControllerEvent::getController() 的返回类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67800943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com