Вход Регистрация
Файл: framework/tasks/CleanImageManipulationCache.php
Строк: 59
<?php
/**
 * Wipe the cache of failed image manipulations. When {@link GDBackend} attempts to resample an image, it will write
 * the attempted manipulation to the cache and remove it from the cache if the resample is successful. The objective
 * of the cache is to prevent fatal errors (for example from exceeded memory limits) from occurring more than once.
 *
 * @package framework
 * @subpackage filesystem
 */
class CleanImageManipulationCache extends BuildTask {

    protected 
$title 'Clean Image Manipulation Cache';

    protected 
$description 'Clean the failed image manipulation cache. Use this to allow SilverStripe to attempt
        to resample images that have previously failed to resample (for example if memory limits were exceeded).'
;

    
/**
     * Check that the user has appropriate permissions to execute this task
     */
    
public function init() {
        if(!
Director::is_cli() && !Director::isDev() && !Permission::check('ADMIN')) {
            return 
Security::permissionFailure();
        }

        
parent::init();
    }

    
/**
     * Clear out the image manipulation cache
     * @param SS_HTTPRequest $request
     */
    
public function run($request) {
        
$failedManipulations 0;
        
$processedImages 0;
        
$images DataObject::get('Image');

        if(
$images && Image::get_backend() == "GDBackend") {
            
$cache SS_Cache::factory('GDBackend_Manipulations');

            foreach(
$images as $image) {
                
$path $image->getFullPath();

                if (
file_exists($path)) {
                    
$key md5(implode('_', array($pathfilemtime($path))));

                    if (
$manipulations unserialize($cache->load($key))) {
                        
$failedManipulations += count($manipulations);
                        
$processedImages++;
                        
$cache->remove($key);
                    }
                }
            }
        }

        echo 
"Cleared $failedManipulations failed manipulations from
            
$processedImages Image objects stored in the Database.";
    }

}
Онлайн: 0
Реклама