Skip to content

QoreCode/doris-yii2-compressor

Repository files navigation

Установка и настройка

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. Опционально.