. */ declare(strict_types=1); namespace App\EventListener; use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\EventDispatcher\Attribute\AsEventListener; use Symfony\Component\HttpKernel\Event\ResponseEvent; #[AsEventListener] class DisallowSearchEngineIndexingRequestListener { private const HEADER_NAME = 'X-Robots-Tag'; private readonly bool $enabled; public function __construct(#[Autowire(param: 'partdb.demo_mode')] bool $demo_mode) { // Disable this listener in demo mode $this->enabled = !$demo_mode; } public function __invoke(ResponseEvent $event): void { //Skip if disabled if (!$this->enabled) { return; } if (!$event->getResponse()->headers->has(self::HEADER_NAME)) { $event->getResponse()->headers->set(self::HEADER_NAME, 'noindex'); } } }