Download the PHP package m00nk/yii2-dynimage without Composer
On this page you can find all versions of the php package m00nk/yii2-dynimage. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package yii2-dynimage
DynImage - компонент для динамической генерации изображений
Задачи компонента:
- автоматически создавать уменьшенные копии исходного изображения требуемых размеров
- при повторном обращении, отдавать изображения вэб-сервером, без запуска скриптов
Внимание! Для работы должно быть установлено расширение ImageMagick.
Установка
Настройка приложения
Компонент имеет несколько параметров:
- cachePath - путь относительно корня сайта к папке кэша изображений. По-умолчанию '/assets/dynimg'. Эта папка должна быть доступна из броузера.
- sizes - массив допустимых размеров изображений (ширина). Используется только при автоматическом определении ширины.
- jpegQuality - уровень качества для JPEG-файлов
Пример задания параметров через конфигурацию:
Обратите внимание, что при смене папки кэша, нужно менять и правило в UrlManager, чтобы компонент мог правильно перехватывать запросы к несуществующим файлам.
Все необходимые для работы папки (включая папку кэша) компонент создает автоматически.
Принцип работы
- параметры изображения кодируются в имени файла. По ним компонент может определить, что именно нужно получить в результате.
- если требуемое изображение уже существует в папке кэша, то вэб-сервер просто отдает броузеру файл. Никакие скрипты при этом не запускаются.
- если требуемого изображения в папке кэша нет, то запрос перехватывается приложением. При этом компонент создает требуемое изображение, сохраняет его в кэше и отправляет в броузер.
Использование
Есть два варианта использования:
- создание изображений с заранее известными размерами
- создание изображений с автоматическим вычислением ширины
Cоздание изображений с заранее известными размерами
Компонент позволяет получить URL изображения, используя заранее известные параметры результирующего изображения. Для этого используется метод :
Код выше вставит на страницу HTML-тег вида
При первом обращении к файлу, броузер перенаправит запрос в компонент, который создаст файл требуемого размера и отправит его в броузер. При последующих обращениях, файл будет отдаваться вэб-сервером без обращения к компоненту.
Cоздание изображений с автоматическим вычислением ширины
Если необходимо, чтобы изображения создавались с автоматически вычисляемой шириной, нужно использовать метод :
Код выше создаст псевдо-тег с необходимыми параметрами и загрузит JavaScript, который сразу после загрузки страницы просканирует все
такие теги и заменит их соответствующими HTML-тегами . Для каждого такого тега будет вычислена ширина, исходя из ширины контейнера.
Замечания по работе
При автоматическом вычислении ширины компонент создает изображения с шириной, округленной в большую сторону.
Например:
в настройках указаны размеры [50, 400, 1200], компонент создаст изображения шириной:
- 50 точек для всех контейнеров <= 50 точек
- 400 точек для всех контейнеров > 50 и <= 400 точек
- 1200 точек для всех контейнеров > 400 точек
Особенности nginx
Вэб-сервер nginx работает немного отлично от Apache, в частности при использовании настроек кэширования вида
при отсутствии требуемого файла nginx не будет запускать приложение! Поэтому, при использовании nginx, нужно отключить кэширование файлов изображений в папке кэша, заданной в параметрах компонента.