it-for-free/yii-image-resize-on-the-fly

yii yii2 resize image on the fly and cache

v1.0.0 2018-12-24 14:43 UTC

This package is auto-updated.

Last update: 2024-03-26 22:24:48 UTC


README

Обрезка картинки на лету при обращении из браузера.

Так как идет работа с изображением, ниже приведен пример как осуществляется работу с данным модулем.

Установка

Установка с помощью composer:

composer require it-for-free/yii-image-resize-on-the-fly:~v1.0.0

Использование (Usage)

Пример использования во вью:

<img src='/image?path=' . $model->img . '&format=100x100'>

В примере выше видно, что применён метод запроса GET с двумя параметрами

  1. $model->img это путь к вашему изображению, обычно это путь к файлу хранимый в БД, в нашем случае он выглядет как $model->img, например там может храниться путь photos/someimage.jpg, остальной путь берётся из алиаса который определён в конфиге данного модуля. Как именно его определить будет показано ниже, так же обратите внимание, что перед директорией photos/ нет / он дописывается модулем.

  2. 100x100 это строка формата обрезки картинки, у нас это выглядет так &format=100x100, форматов может быть несколько, посмотреть подробную документацию можно здесь.

Конфигурирование модуля

Перед тем как конфигурировать модуль, нужно задать алиас, далее он будет задан как @uploadPath

Задать алиас можно в файле common/config/bootstrap.php

пример:

Yii::setAlias('@uploadPath', dirname(dirname(__DIR__)) . '/frontend/web/uploads');

Далее, в конфигурационном файле (например:common/config/main.php) вашего приложения в секции modules пишем следующее:

use ItForFree\YiiImageResizeOnTheFly\Image;
....
....

'modules' => [
    'image' => [
        'class' => Image::class,
        'baseUploadPath' => '@uploadPath'
    ], 
],                                                                                 

из конфигурации выше мы видим, установку свойства публичного поля модуля о котором говорилось раньше baseUploadPath это своиство модуля нужно для работы самого класса, в качестве значения ему передаётся алиас @uploadPath, который должен указывать путь, по которому вы сохраняете изображения.

Использование обёртки над yii/helpers/Html::img()

Существует обёртка для более удобного использования модуля по view. Общий вид функции imgrsc():

echo imgrsc($path, $format, $options);

Функция imgrsc() принимает 2 обязательных параметра и один необязательный:

  1. $path путь к изображению относительно @uploadPath.
  2. $format формат изображения должен быть задан следующим образом посмотреть можно здесь.
  3. $options это родной необязательный параметр yii/helpers/Html::img().

Пример реального вызова:

echo imgrsc($model->img, '100x100');