Fixed: Clear cache after resizing image
This commit is contained in:
parent
cb3228bc53
commit
425a6aa3be
|
@ -18,7 +18,7 @@ class CacheManager
|
|||
|
||||
public function get(MediaPath $path, string $size, ?string $sizes, array $options = []): string
|
||||
{
|
||||
return Cache::tags($this->pathTag($path, $size))->rememberForever(
|
||||
return Cache::tags($this->pathTag($path))->rememberForever(
|
||||
$this->cacheKey($path, $size),
|
||||
fn () => $this->tagGenerator->generate($path, $size, $sizes, $options)
|
||||
);
|
||||
|
@ -26,7 +26,7 @@ class CacheManager
|
|||
|
||||
public function delete(MediaPath $path): void
|
||||
{
|
||||
Cache::tags([$this->singlePathTag($path)])->flush();
|
||||
Cache::tags($this->pathTag($path))->flush();
|
||||
}
|
||||
|
||||
public function flush(): void
|
||||
|
@ -39,7 +39,7 @@ class CacheManager
|
|||
return "resizer.{$size}.{$path->normal()}";
|
||||
}
|
||||
|
||||
private function pathTag(MediaPath $path, string $size): array
|
||||
private function pathTag(MediaPath $path): array
|
||||
{
|
||||
return [$this->tagAll, $this->singlePathTag($path)];
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace Aweos\Resizer\Classes;
|
||||
|
||||
use Aweos\Resizer\Classes\CacheManager;
|
||||
use Aweos\Resizer\Lib\MediaPath;
|
||||
use Log;
|
||||
use Throwable;
|
||||
|
@ -12,7 +13,10 @@ class ResizeJob
|
|||
public function fire($job, $params)
|
||||
{
|
||||
list($file) = $params;
|
||||
app(ImageResizer::class)->generate(new MediaPath($file), $params['update'] ?? false);
|
||||
$media = new MediaPath($file);
|
||||
app(ImageResizer::class)->generate($media, $params['update'] ?? false);
|
||||
app(CacheManager::class)->delete($media);
|
||||
|
||||
$job->delete();
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ use Aweos\Resizer\Models\Setting;
|
|||
use Aweos\Resizer\Tests\TestCase;
|
||||
use Event;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use MediaLibrary;
|
||||
use Storage;
|
||||
|
||||
|
@ -33,6 +34,21 @@ class ResizerTest extends TestCase
|
|||
$this->assertFileCount(0, '');
|
||||
}
|
||||
|
||||
public function testDeleteOldCacheWhenUploadingFile(): void
|
||||
{
|
||||
Setting::set('folders', [['folder' => '/pages']]);
|
||||
Setting::set('sizes', []);
|
||||
Setting::set('breakpoints', []);
|
||||
$file = UploadedFile::fake()->image('test.jpg', 500, 600);
|
||||
$this->media->put('/pages/test.jpg', $file);
|
||||
Cache::tags(['resizer', 'resizer.pages/test.jpg'])->put('resizer.original.pages/test.jpg', 'AAA');
|
||||
|
||||
Event::fire('media.file.upload', [null, '/pages/test.jpg', null]);
|
||||
|
||||
$this->assertFileCount(0, '');
|
||||
$this->assertFalse(Cache::tags(['resizer', 'resizer.pages/test.jpg'])->has('resizer.original.pages/test.jpg'));
|
||||
}
|
||||
|
||||
public function testThrowExceptionWhenOriginalFileNotFound(): void
|
||||
{
|
||||
$this->expectException(ResizerException::class);
|
||||
|
|
Loading…
Reference in New Issue