public function storeInCache(EventInterface $event) {
        $request = $event->getRequest();
        $response = $event->getResponse();
        $model = $response->getModel();

        if (!$model instanceof Image || $this->isCacheHit()) {
            // Only store images in the cache, and don't try to rewrite on cache hit
            return;
        }

        $path = $this->getCacheFilePath($request);
        $dir = dirname($path);

        // Prepare data for the data
        $data = serialize([
            'image' => $model,
            'headers' => $response->headers,
        ]);

        // Create directory if it does not already exist. The last is_dir is there because race
        // conditions can occur, and another process could already have created the directory after
        // the first is_dir($dir) is called, causing the mkdir() to fail, and as a result of that
        // the image would not be stored in the cache. The error supressing is ghetto, I know, but
        // thats how we be rolling.
        //
        // "What?! Did you forget to is_dir()-guard it?" - Mats Lindh
        if (is_dir($dir) || @mkdir($dir, 0775, true) || is_dir($dir)) {
            $tmpPath = $path. '.tmp';

            // If in the middle of a cache write operation, fall back
            if (file_exists($tmpPath) || file_exists($path)) {
                return;
            }

            // Write the transformed image to a temporary location
            if (file_put_contents($tmpPath, $data)) {
                // Move the transformed image to the correct destination

                // We have to silence this in case race-conditions lead to source not existing,
                // in which case it'll give a warning (we'd use try/catch here in case of PHP7)
                if (@rename($path. '.tmp', $path) === false && !file_exists($path)) {
                    throw new StorageException(
                        'An error occured while moving transformed image to cache'
                    );
                }
            }
        }
    }
public function storeInCache(EventInterface $event) {
        $request = $event->getRequest();
        $response = $event->getResponse();
        $model = $response->getModel();

        if (!$model instanceof Image || $this->isCacheHit()) {
            // Only store images in the cache, and don't try to rewrite on cache hit
            return;
        }

        $path = $this->getCacheFilePath($request);
        $dir = dirname($path);

        // Prepare data for the data
        $data = serialize([
            'image' => $model,
            'headers' => $response->headers,
        ]);

        // Create directory if it does not already exist. The last is_dir is there because race
        // conditions can occur, and another process could already have created the directory after
        // the first is_dir($dir) is called, causing the mkdir() to fail, and as a result of that
        // the image would not be stored in the cache. The error supressing is ghetto, I know, but
        // thats how we be rolling.
        //
        // "What?! Did you forget to is_dir()-guard it?" - Mats Lindh
        if (is_dir($dir) || @mkdir($dir, 0775, true) || is_dir($dir)) {
            $tmpPath = $path. '.tmp';

            // If in the middle of a cache write operation, fall back
            if (file_exists($tmpPath) || file_exists($path)) {
                return;
            }

            // Write the transformed image to a temporary location
            if (file_put_contents($tmpPath, $data)) {
                // Move the transformed image to the correct destination

                // We have to silence this in case race-conditions lead to source not existing,
                // in which case it'll give a warning (we'd use try/catch here in case of PHP7)
                if (@rename($path. '.tmp', $path) === false && !file_exists($path)) {
                    throw new StorageException(
                        'An error occured while moving transformed image to cache'
                    );
                }
            }
        }
    }
public function storeInCache ( EventInterface $ event ) { $ request = $ event -> getRequest ( ) ; $ response = $ event -> getResponse ( ) ; $ model = $ response -> getModel ( ) ; if ( ! $ model instanceof Image || $ this -> isCacheHit ( ) ) { // Only store images in the cache, and don't try to rewrite on cache hit return ; } $ path = $ this -> getCacheFilePath ( $ request ) ; $ dir = dirname ( $ path ) ; // Prepare data for the data $ data = serialize ( [ 'image' => $ model , 'headers' => $ response -> headers , ] ) ; // Create directory if it does not already exist. The last is_dir is there because race // conditions can occur, and another process could already have created the directory after // the first is_dir($dir) is called, causing the mkdir() to fail, and as a result of that // the image would not be stored in the cache. The error supressing is ghetto, I know, but // thats how we be rolling. // // "What?! Did you forget to is_dir()-guard it?" - Mats Lindh if ( is_dir ( $ dir ) || @ mkdir ( $ dir , 0775 , true ) || is_dir ( $ dir ) ) { $ tmpPath = $ path . '.tmp' ; // If in the middle of a cache write operation, fall back if ( file_exists ( $ tmpPath ) || file_exists ( $ path ) ) { return ; } // Write the transformed image to a temporary location if ( file_put_contents ( $ tmpPath , $ data ) ) { // Move the transformed image to the correct destination // We have to silence this in case race-conditions lead to source not existing, // in which case it'll give a warning (we'd use try/catch here in case of PHP7) if ( @ rename ( $ path . '.tmp' , $ path ) === false && ! file_exists ( $ path ) ) { throw new StorageException ( 'An error occured while moving transformed image to cache' ) ; } } } }
Store transformed images in the cache

@param EventInterface $event The current event
Store transformed images in the cache