Skip to content

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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Yii Image resizer

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

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

Установка

Установка с помощью 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');