public function testSetFromOriginal()
 {
     $image = $this->getTestImage();
     $cachedImage = new CachedImage();
     $cachedImage->setFromOriginal($image, 'foo-key');
     $this->assertInstanceOf('\\Intervention\\Image\\AbstractDriver', $cachedImage->getDriver());
     $this->assertEquals('mock', $cachedImage->getCore());
     $this->assertEquals('image/png', $cachedImage->mime);
     $this->assertEquals('./tmp', $cachedImage->dirname);
     $this->assertEquals('foo.png', $cachedImage->basename);
     $this->assertEquals('png', $cachedImage->extension);
     $this->assertEquals('foo', $cachedImage->filename);
     $this->assertEquals(array(), $cachedImage->getBackups());
     $this->assertEquals('', $cachedImage->encoded);
     $this->assertEquals('foo-key', $cachedImage->cachekey);
 }
示例#2
0
 /**
  * Get image either from cache or directly processed
  * and save image in cache if it's not saved yet
  * 
  * @param  int  $lifetime
  * @param  bool $returnObj
  * @return mixed
  */
 public function get($lifetime = null, $returnObj = false)
 {
     $lifetime = is_null($lifetime) ? $this->lifetime : intval($lifetime);
     $key = $this->checksum();
     // try to get image from cache
     $cachedImageData = $this->cache->get($key);
     // if imagedata exists in cache
     if ($cachedImageData) {
         // transform into image-object
         if ($returnObj) {
             $image = $this->manager->make($cachedImageData);
             $cachedImage = new CachedImage();
             return $cachedImage->setFromOriginal($image, $key);
         }
         // return raw data
         return $cachedImageData;
     } else {
         // process image data
         $image = $this->process();
         // encode image data only if image is not encoded yet
         $image = $image->encoded ? $image->encoded : $image->encode();
         // save to cache...
         $this->cache->put($key, (string) $image, $lifetime);
         // return processed image
         return $returnObj ? $image : (string) $image;
     }
 }
示例#3
0
 /**
  * Get image either from cache or directly processed
  * and save image in cache if it's not saved yet
  * 
  * @param  int  $lifetime
  * @param  bool $returnObj
  * @return mixed
  */
 public function get($lifetime = null, $returnObj = false, $lastModified = null)
 {
     $lifetime = is_null($lifetime) ? $this->lifetime : intval($lifetime);
     $key = $this->checksum();
     // try to get image from cache
     $cachedImageData = unserialize($this->cache->get($key));
     // if imagedata exists in cache
     if ($cachedImageData) {
         if (!empty($lastModified) && $this->checkLastModified($lastModified, $cachedImageData['last_modified'])) {
             return new NotModified();
         }
         // transform into image-object
         if ($returnObj) {
             $image = $this->manager->make($cachedImageData['image']);
             $cachedImage = new CachedImage();
             return $cachedImage->setFromOriginal($image, $key);
         }
         // return raw data
         return $cachedImageData['image'];
     } else {
         // process image data
         $image = $this->process();
         // encode image data only if image is not encoded yet
         $encoded = $image->encoded ? $image->encoded : (string) $image->encode();
         $data = serialize(['last_modified' => gmdate("D, d M Y H:i:s \\G\\M\\T", time()), 'image' => $encoded]);
         // save to cache...
         $this->cache->put($key, $data, $lifetime);
         // return processed image
         return $returnObj ? $image : $encoded;
     }
 }