Как настроить liip_imagine в Symfony?

LiipImagineBundle - это бандл для Symfony, который предоставляет интеграцию и расширение функциональности библиотеки Imagine для обработки и изменения изображений. Чтобы настроить бандл в Symfony, выполните следующие шаги:

1. Установите бандл с помощью Composer:

composer require liip/imagine-bundle

2. Активируйте бандл, добавив его в файле config/bundles.php:

LiipImagineBundleLiipImagineBundle::class => ['all' => true],

3. Задайте настройки бандла в файле конфигурации config/packages/liip_imagine.yaml. Пример основных настроек можно найти на официальном сайте бандла или использовать следующий пример:

liip_imagine:
    resolvers:
        default:
            web_path:
                web_root: '%kernel.project_dir%/public'
                cache_prefix: media/cache
    filter_sets:
        cache: ~
        my_filter:
            quality: 75
            filters:
                strip:
                    # Удаляет метаданные изображения
                    mode: strip
                thumbnail:
                    # Создает эскиз изображения
                    size: [120, 90]
                    mode: outbound
                    allow_upscale: false

В данном примере мы настроили один резолвер default, который использует путь веб-корня вашего проекта, и определили два набора фильтров cache и my_filter, в которых определены различные операции над изображениями.

4. Настройте роуты в файле config/routes/liip_imagine.yaml. Это позволяет генерировать URL изображений на основе фильтров. В данном примере мы настроим один маршрут с именем liip_imagine_filter:

_liip_imagine:
    resource: '@LiipImagineBundle/Resources/config/routing.xml'

5. Используйте LiipImagineBundleImagineCacheCacheManager для создания и управления кэшем изображений:

use LiipImagineBundleImagineCacheCacheManager;

// ...

public function myAction(CacheManager $cacheManager)
{
    $imagePath = 'path/to/image.jpg';
    $filteredImageURL = $cacheManager->getBrowserPath($imagePath, 'my_filter');

    // Используйте $filteredImageURL для отображения изображения на клиента
}

Обратите внимание, что вы должны указать путь к изображению и имя фильтра, настроенные в liip_imagine.yaml.

Также, в зависимости от ваших потребностей, вы можете настроить дополнительные опции, такие как кэширование изображений или добавление собственных фильтров.

Надеюсь, это подробное руководство поможет вам настроить liip_imagine в Symfony.