composer require doris/yii2-compressor "*"
Для установки ключа и домена в common/config/params
необходимо положить следующие настройки:
'ImageCompressor' => [ 'key' => "Ключ для текущего сайта", 'domain' => "Домен на который будет отправлятся запрос" ]
Параметры:
- $key - Ключ который генерируется на сайте и привязан к определенному проекту.
- $domain - Домен с протоколом, к примеру http://test.com.ua
Пример использования:
use doris\compressor\CompressorApi; try { $compressor = new CompressorApi(); $compressor->setPathToImage('/images/test.png') ->setPathToSave('/uploads/products') ->setAlias('@web') ->setCustomName('mockup') $imagePath = $compressor->compress(77); catch (Exception $e) { $message = $e->getMessage(); }
Класс CompressorApi имеет ряд сеттеров (реализован паттерн текучего интерфейса):
- setPathToImage - путь к картинке относительно заданого псевдонима. Обязательно.
- setPathToSave - путь к дериктории для сохранения изображения относительно заданого псевдонима. Если не задан - картинка будет перезаписана. Опционально.
- setAlias - задает псевдоним пути. По умолчанию '@webroot'. Опционально.
- setCustomName - устанавливает новое имя для сжатой картинки. Опционально.
И несколько методов:
- compress - возвращает валидный путь для подключения картинки на сайте. Принимает параметр указывающий степень сжатия (от 0 до 100). По умолчанию 85.
- deleteOriginal - удаляет оригинал картинки. Возвращает результат удаления как true или false.
Каждая ошибка (к примеру если по указаному пути картинка не была найдена) генерирует exception по-этому рекомендуется использовать конструкцию try catch для его обработки.
Если есть желание использовать библиотеку с консоли стоит зарегистрировать модуль в console/config/main
'modules' => [ 'compressor' => 'doris\compressor\Modules\Console\Handler', ],
Команда для сжатия картинок через консоль:
yii compressor $path $recursive
Параметры:
- $path - Путь к изображением начиная с web. К примеру
\images
. Обязательно. - $recursive - Флаг который указывает нужно ли перебирать дочерние дериктории. Если true - будет перебирать все вложенные дериктории. По умолчанию true. Опционально.