承接 garbuzivan/imagemanager 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

garbuzivan/imagemanager

Composer 安装命令:

composer require garbuzivan/imagemanager

包简介

Manager image library for Laravel

README 文档

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

garbuzivan/imagemanager 适用场景与选型建议

garbuzivan/imagemanager 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 616 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 01 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 garbuzivan/imagemanager 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 garbuzivan/imagemanager 我们能提供哪些服务?
定制开发 / 二次开发

基于 garbuzivan/imagemanager 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 616
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2021-01-10