我对 Symfony 很陌生,所以如果这对你来说很明显,请原谅我 :)
对于我的项目,我需要根据 url 执行一些操作。我使用内核事件,更具体地说是内核请求。
在 services.yaml 中:
App\Service\UrlManager:
tags:
- { name: kernel.event_listener, event: kernel.request}
在 UrlManager.php 中:
public function onKernelRequest(GetResponseEvent $event)
{
$request = Request::createFromGlobals();
$hostname = parse_url($request->server->get('HTTP_HOST'),PHP_URL_HOST);
/*
* here my treatment that works fine :)
*/
但是当我处于 DEV 模式时,调试工具栏再次触发相同的事件......我发现的唯一解决方法是在我的治疗之前添加这个:
if (substr($request->server->get('REQUEST_URI'),0,6) != '/_wdt/') {
也可以正常工作,但我认为这不是最好的做法,因为项目中会保留一些非常具体的内容,并且仅适用于 DEV 模式。有没有办法“告诉”工具栏不要触发这个事件?也许要在 services.yaml 中添加一些东西?或者其他一些配置参数?