liip / LiipImagineBundle

Symfony Bundle to assist in image manipulation using the imagine library
http://liip.ch
MIT License
1.66k stars 378 forks source link

Resolve Programmatically not generate cache #1512

Open ziat1988 opened 1 year ago

ziat1988 commented 1 year ago

I want to pre-generate the cache, by doing:

public function yourControllerMethod(CacheManager $imagineCacheManager)
    {
        /** @var string */
        $resolvedPath = $imagineCacheManager->getBrowserPath('/relative/path/to/image.jpg', 'my_thumb');

        // ...
    }

But there are no cache generated in media/cache. I tried the console php bin/console liip:imagine:cache:resolve relative/path/to/image.jpg --filters=my_thumb then it works perfectly. So is it possible to resolve in the code, controller or service? The reason I want to do this is because I have some heavy task image and I want to pre generate the cache before the client request.

Here is my config:

liip_imagine:
    # valid drivers options include "gd" or "gmagick" or "imagick"
    driver: "gd"
    resolvers:
        default :
            web_path : ~
    filter_sets:
        my_thumb:
            quality: 70
            filters:
                thumbnail: { size: [120, 90], mode: outbound, allow_upscale: true  }
                background: { size: [124, 94], position: center, color: '#000000' }

Thanks

dbu commented 1 year ago

if you do the web request as the browser would do it, the cache should also be warmed up. if you want to call the liip imagine services from code, i'd check again what the liip:imagine:cache:resolve command does and try to do mimik the same.

mikocevar commented 1 year ago

Check

https://github.com/liip/LiipImagineBundle/issues/1512 and https://github.com/liip/LiipImagineBundle/issues/784