Download the PHP package garbuzivan/imagemanager without Composer
On this page you can find all versions of the php package garbuzivan/imagemanager. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package imagemanager
Image Manager: библиотека для работы с изображениями + расширение для Laravel
Установка
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