我刚刚发现SensioLabsInsight,发现非常
interesting tips如何编写好的代码.如果有一些解释为什么(或为什么)不应该使用某些东西,即使是退出和死亡的基本东西也是如此.这将帮助我解释与我合作的人的事情.
所以我的问题是专门为AccessDeniedHttpException – 它说:
Symfony applications should not throw AccessDeniedHttpException
那么如何从应用程序控制器或EventListener返回403 Forbidden?
最好的做法是什么?
说实话我以为会是
throw new AccessDeniedHttpException()
因为404你有
throw $this->createNotFoundException()
但是看起来我错了.
我认为这意味着你必须抛出
AccessDeniedException而不是直接抛出AccessDeniedHttpException.
主要原因是在Symfony\Component\Security\Http\Firewall\ExceptionListener中,AccessDeniedException被事件监听器捕获,然后可以使用它进行一些操作.检查onKernelException函数.