garbuzivan/imagemanager

There is no license information available for the latest version (0.1.1) of this package.

Manager image library for Laravel

0.1.1 2021-12-27 12:04 UTC

This package is auto-updated.

Last update: 2024-04-27 17:09:33 UTC


README

Установка

composer require garbuzivan/imagemanager

При использовании стандартного Transport класса пакет не подразуемвает хранение данных об изображениях и при использовании методов поиска и хранения будет возвращать пустые данные.

EloquentTransport - подразумевает использование Laravel Eloquent, предварительно требует публикации конфигурации и миграции.

Laravel

и опубликовать конфигурацию

php artisan vendor:publish --force --provider="GarbuzIvan\ImageManager\ImageManagerServiceProvider" --tag="config"

Теперь нужно применить миграции:

php artisan migrate

Архитектура библиотеки

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

Загрузка Laravel конфига из файла

$config = new GarbuzIvan\ImageManager\Laravel\Config;

Экземпляр класса ImageManager

$image = new GarbuzIvan\ImageManager\ImageManager($config);

Загрузка ищображения по ссылке

$img = $image->load('https://zebrains.ru/static/images/intep_case_preview.4865ac.jpg');

Загрузка ищображения из файла

$img = $image->load($_FILES["fileToUpload"]["tmp_name"]);

Загрузка ищображения из строки base64

$img = $image->load('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH1ggDCwMADQ4NnwAAAFVJREFUGJWNkMEJADEIBEcbSDkXUnfSgnBVeZ8LSAjiwjyEQXSFEIcHGP9oAi+H0Bymgx9MhxbFdZE2a0s9kTZdw01ZhhYkABSwgmf1Z6r1SNyfFf4BZ+ZUExcNUQUAAAAASUVORK5CYII=');

Сохранение загруженного файла $title название изображения, удобно использовать для поиску по содержимому и в СЕО

$img->save(string $title = null);

Вывод изображения на экран

echo $img->response();

Поиск изображения по ID

$image->getByID(1)->getImage();

Поиск изображения по hash

$image->getByHash('5b041cd17933badbb7658de2b45ba8de188df628')->getImage();

Поиск изображения по filesize

Аргументы применяют значения в формате int, если установить null - аргумент не будет учитываться при поиске

$list = $image->getByFileSize($minFileSize = null, $mxnFileSize = null, int $limitItem = 10, int $numberPage = 1);

Метод возвращает массив изображений соответствующих запросу.

Поиск изображения по минимальному и максимальному размеру высоту и ширины

Аргументы применяют значения в формате int, если установить null - аргумент не будет учитываться при поиске

$list = $image->getBySize(int $minWidth = null, int $maxWidth = null, int $minHeight = null, int $maxHeight = null, int $limitItem = 10, int $numberPage = 1);

Метод возвращает массив изображений соответствующих запросу.

Поиск изображения по title

Аргумент применяет значения в формате string, если установить null - аргумент не будет учитываться при поиске

$list = $ImageManager->getTitle('%Тестовое%', int $limitItem = 10, int $numberPage = 1);

Метод возвращает массив изображений соответствующих запросу.

Обновление title изображения

$img = $ImageManager->getByID(2)->getImage();

$img['title'] = 'Тестовое ZB изображение';

$ImageManager->update($img);

Подключение изображения к итему компонента

Аргумент компонента имеет тип строки, что позволяет делать более сложные варианты использования, но по умолчанию можно передать например параметр (news)

Аргумент итема - тип int храним например id новости

$img[] = $ImageManager->getByID(1)->getImage();

$img[] = $ImageManager->getByID(2)->getImage();

$ImageManager->setUse($img, 1, 'news');

или

$list = $ImageManager->getTitle('%Звезды%', 10, 1);

$ImageManager->setUse($list, 1, 'news');

Получить список используемых изображений в итеме компонента

$images = $ImageManager->getUse(1, 'news');

В качестве ключа елементов передается ID использования изображения, по которому можно удалять изображения из использования в итеме компонента

Удалить использование изображения из итема компонента

$ImageManager->dropUse([5,7,31], 1, 'news');

Полное удаление изображения с сервера

$ImageManager->getByID(9)->drop();

или

$list = $ImageManager->getTitle('%Звезды%', 10, 1);

$ImageManager->drop($list);

$config = new \GarbuzIvan\ImageManager\Laravel\Config;
$imageManager = new \GarbuzIvan\ImageManager\ImageManager($config);
$img = $imageManager->load('https://zebrains.ru/static/images/intep_case_preview.4865ac.jpg')->save();
$imageManager->setUse([['id' => 13], ['id' => 13], ['id' => 13]], 2, 'test');
$imageManager->dropUse([1], 2, 'test');
dd($imageManager->getUse(2, 'test'));

Конфигурация пакета

Настроки disks ведут как правило к одной директории, относительно URL, полного пространства или относительно корня проекта для генерации ссылок на изображения.



Настройка cache позвляет определеить стандартные варианты нарезки изображения после сохранения оригенала.



Директива transport - позволяет написать свое решение работы с базой, отличное от реализации на Laravel.

Требуется наследование \GarbuzIvan\ImageManager\Transport\AbstractTransport



Директива pipes - позволяет написать свои реализации обработки изображения после загрузки на сервер, например если необходимо накладывать водяные знаки.

Требуется наследование \GarbuzIvan\ImageManager\Pipes\AbstractPipes

Тестирование

./vendor/bin/phpunit ./vendor/garbuzivan/imagemanager/tests