/** * Inject custom Asset package to Kernel assets helper * * @param KernelEvent $event */ public function onKernelRequest(KernelEvent $event) { if (!$event->isMasterRequest()) { return; } // retrieve needed params $kernel = $this->container->get('kernel'); $environment = $kernel->getEnvironment(); $nodeEnvironment = $this->container->getParameter('grunt.environment'); // cachebusting shouldn't be applied in node environment // BrowserSync delivers files from app/Resources if ($environment != $nodeEnvironment) { // defaulrts to web folder $rootDir = $this->container->getParameter('grunt.filerev.root_dir'); $package = new FilerevPackage(); $package->setRoot($rootDir); // catalogue holds rev data from grunt-filerev // generated by the command `grunt rev` which is called during the build process $this->initializeCacheCatalogue(); $package->setSummary($this->catalogue); $assetsHelper = $this->container->get('templating.helper.assets'); $assetsHelper->setDefaultPackage($package); } }
/** * Checks whether the request is a Contao front end master request. * * @param KernelEvent $event * * @return bool */ protected function isFrontendMasterRequest(KernelEvent $event) { return $event->isMasterRequest() && $this->isFrontendScope(); }
/** * @param KernelEvent $event * * @return bool */ protected function isEventEligible(KernelEvent $event) { return $event->isMasterRequest(); }
/** * @param KernelEvent $event * @return bool */ protected function isActive(KernelEvent $event) { $request = $event->getRequest(); if ($this->active === true) { return true; } $this->active = false; if ($event instanceof FilterControllerEvent) { if (!$event->isMasterRequest()) { return false; } if ($event->getController()[0] instanceof RestApiControllerInterface) { return $this->active = true; } } foreach ($this->whitelist as $whitelist) { if (preg_match($whitelist, $request->getPathInfo())) { return $this->active = true; } } foreach ($this->blacklist as $blacklist) { if (preg_match($blacklist, $request->getPathInfo())) { $this->active = false; } } return $this->active; }