Gregwar\Image\Image::cacheFile PHP Метод

cacheFile() публичный Метод

Note that if it exists, all the image computation process will not be done.
public cacheFile ( string $type = 'jpg', integer $quality = 80, $actual = false )
$type string the image type
$quality integer the quality (for JPEG)
    public function cacheFile($type = 'jpg', $quality = 80, $actual = false)
    {
        if ($type == 'guess') {
            $type = $this->guessType();
        }
        if (!count($this->operations) && $type == $this->guessType() && !$this->forceCache) {
            return $this->getFilename($this->getFilePath());
        }
        // Computes the hash
        $this->hash = $this->getHash($type, $quality);
        // Generates the cache file
        $cacheFile = '';
        if (!$this->prettyName || $this->prettyPrefix) {
            $cacheFile .= $this->hash;
        }
        if ($this->prettyPrefix) {
            $cacheFile .= '-';
        }
        if ($this->prettyName) {
            $cacheFile .= $this->prettyName;
        }
        $cacheFile .= '.' . $type;
        // If the files does not exists, save it
        $image = $this;
        // Target file should be younger than all the current image
        // dependencies
        $conditions = array('younger-than' => $this->getDependencies());
        // The generating function
        $generate = function ($target) use($image, $type, $quality) {
            $result = $image->save($target, $type, $quality);
            if ($result != $target) {
                throw new GenerationError($result);
            }
        };
        // Asking the cache for the cacheFile
        try {
            $file = $this->getCacheSystem()->getOrCreateFile($cacheFile, $conditions, $generate, $actual);
        } catch (GenerationError $e) {
            $file = $e->getNewFile();
        }
        if ($actual) {
            return $file;
        } else {
            return $this->getFilename($file);
        }
    }

Usage Example

Пример #1
0
 /**
  * Return URL to file.
  *
  * @return string
  */
 public function url()
 {
     if ($this->image) {
         $output = $this->image->cacheFile($this->type, $this->quality);
         $this->reset();
     } else {
         $relPath = preg_replace('|^' . ROOT_DIR . '|', '', $this->get('path'));
         $output = $relPath . '/' . $this->get('filename');
     }
     return self::$grav['base_url'] . '/' . $output;
 }
All Usage Examples Of Gregwar\Image\Image::cacheFile