AssetCompress\Routing\Filter\AssetCompressorFilter::beforeDispatch PHP Method

beforeDispatch() public method

Checks if request is for a compiled asset, otherwise skip any operation
public beforeDispatch ( Cake\Event\Event $event ) : Response | null
$event Cake\Event\Event containing the request and response object
return Cake\Network\Response | null Response if the client is requesting a recognized asset, null otherwise
    public function beforeDispatch(Event $event)
    {
        $request = $event->data['request'];
        $response = $event->data['response'];
        $config = $this->_getConfig();
        $production = !Configure::read('debug');
        if ($production && !$config->general('alwaysEnableController')) {
            return null;
        }
        // Make sure the request looks like an asset.
        $targetName = $this->getName($config, $request->url);
        if (!$targetName) {
            return null;
        }
        if (isset($request->query['theme'])) {
            $config->theme($request->query['theme']);
        }
        $factory = new Factory($config);
        $assets = $factory->assetCollection();
        if (!$assets->contains($targetName)) {
            return null;
        }
        $build = $assets->get($targetName);
        try {
            $compiler = $factory->cachedCompiler();
            $contents = $compiler->generate($build);
        } catch (Exception $e) {
            throw new NotFoundException($e->getMessage());
        }
        $response->type($build->ext());
        $response->body($contents);
        $event->stopPropagation();
        return $response;
    }