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); }
/** * 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; } }
/** * 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; } }