Лучший способ использовать LiipImagineBundle в Javascript - PullRequest
0 голосов
/ 14 ноября 2018

В проекте Symfony4 я использую LiipImagineBundle для изменения размера изображений.Для этого есть хороший фильтр Twig, так что вы можете использовать его в своих шаблонах:

<img src="{{ asset('images/my_image.jpg') | imagine_filter('downscale_800') }}" alt="">

Затем LiipImagine решит вернуть URI, который необходимо разрешить в измененную и кэшированную версию, или предоставить URIна уже кэшированную версию (которая в большинстве случаев приведет к ответу 304).Затем в вашем шаблоне отображается правильный URI.

Но в моем проекте я также загружаю данные API через Javascript.Например, сообщения в блоге, где сообщение может содержать URI для изображения.

Теперь мой вопрос: как лучше всего изменить размер этого изображения с помощью LiipImagine?

Я попробовал пару вариантов:

  • В контроллере API установите URI для измененного изображения в модели поста блога.Но тогда вам нужно обновить контроллер, если вы хотите использовать разные размеры в вашем представлении.И вы должны установить эти URI в каждой функции каждого контроллера, который возвращает сообщение в блоге.
  • В репозитории service / repository установите URI при загрузке моделей сообщений в блоге.Но, опять же, это будет проблемой, когда вам нужны другие размеры и они не соответствуют «разделению проблем».
  • Создайте контроллер, который будет получать путь к изображению и изменять размеры параметров.Затем этот контроллер будет использовать LiipImagine для изменения размера изображения и получения кэшированного URI.Затем контроллер будет перенаправлять на URI, созданный Liip.Но это обойдёт управление кешем Liip и всегда приведет к перенаправлению.

Я не нашел никаких намеков в документации LiipImagine, поэтому было бы здорово, если бы кто-то мог поделиться некоторыми советами и хитростями.

...