Библиотека по работе с изображениями и файлами

Получаем ответы на свои вопросы по Yii 3
Ответить
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Библиотека по работе с изображениями и файлами

Сообщение myks1992@mail.ru »

Здравствуйте! Хотелось бы уточнить как будет реализована эта библиотека по работе с файлами и изображениями на Yii3?

Из коробки на Yii2 (yii\imagine\Image) решала достаточно много функций. Там было всё необходимое. Однако всегда не хватало каких-то мелочей по работе с файлами и изображениями. А так как люди на Yii2 не привыкли всё разносить по сервисам, то получался адский код по работе с изображениями в Контроллере. Было бы не плохо более гибче подойти в этом вопросе.

1. Если изображение нужно загрузить в нескольких форматах (превью, 200x200 ...), то приходилось как-то придумывать по динамическому созданию пути (имени файла) и так же его выводу... Это создавало бардак у многих.

2. Невозможно перегенерировать изображения. Иногда сталкиваемся с такой проблемой, что приходится менять размены изображения. Например, поменялась верстка. И теперь на нужно вместо изображения 200х200 изображение 300х300. Или нужно новое 500Х500. И нам приходится писать ещё один костыль по переформатированию изображения или созданию нового. При этом хорошо, если оригинал мы сохранили. А большинство обрезают оригинал... Или же при обращении этого размера не оказалось, тогда генерируется новое из оригинала при запросе.

В этом пункте было бы не плохо иметь базовую заглушку при отсутствии даже оригинала.

3. Структура подкаталогов: 1/2/3/4/5/0/0/0/0/0

4. Замена, удаление файла при изменении, удалении данных из базы.

Одно из хороших расширений решающих эти проблемы на Yii2 было https://github.com/yii-dream-team/yii2-upload-behavior Где в поведении можно было просто реализовать несколько копий в папке. Перегенерировать превью и так далее

Код: Выделить всё

public function behaviors()
{
    return [
        [
             'class' => '\yiidreamteam\upload\ImageUploadBehavior',
             'attribute' => 'imageUpload',
             'thumbs' => [
                 'thumb' => ['width' => 400, 'height' => 300],
             ],
             'filePath' => '@webroot/images/[[pk]].[[extension]]',
             'fileUrl' => '/images/[[pk]].[[extension]]',
             'thumbPath' => '@webroot/images/[[profile]]_[[pk]].[[extension]]',
             'thumbUrl' => '/images/[[profile]]_[[pk]].[[extension]]',
        ],
    ];
}
Конечно, к этому всему было бы очень не плохо реализовать CROP на JS, как дополнение используя готовую библиотеку. Но знаю, что это уже за пределами PHP фреймворка. Но было бы прекрасно)

5. Касается работы именно с файлами. Не хватало всегда отдачи массовой отдачи файлов пользователю в архиве.

Если у кого-то тоже есть какие-то пожелания из опыта предлагаю писать их здесь)
imp-foo
Сообщения: 1
Зарегистрирован: 2019.06.25, 17:10

Re: Библиотека по работе с изображениями и файлами

Сообщение imp-foo »

Невозможно перегенерировать изображения. Иногда сталкиваемся с такой проблемой, что приходится менять размены изображения. Например, поменялась верстка. И теперь на нужно вместо изображения 200х200 изображение 300х300. Или нужно новое 500Х500.
Конечно, к этому всему было бы очень не плохо реализовать CROP на JS, как дополнение используя готовую библиотеку. Но знаю, что это уже за пределами PHP фреймворка. Но было бы прекрасно)
Не понимаю, зачем все эти crop на php/js если всё это умеет nginx, конфигурация элементарна - работает очень быстро
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Re: Библиотека по работе с изображениями и файлами

Сообщение myks1992@mail.ru »

imp-foo писал(а): 2019.07.30, 11:27
Невозможно перегенерировать изображения. Иногда сталкиваемся с такой проблемой, что приходится менять размены изображения. Например, поменялась верстка. И теперь на нужно вместо изображения 200х200 изображение 300х300. Или нужно новое 500Х500.
Конечно, к этому всему было бы очень не плохо реализовать CROP на JS, как дополнение используя готовую библиотеку. Но знаю, что это уже за пределами PHP фреймворка. Но было бы прекрасно)
Не понимаю, зачем все эти crop на php/js если всё это умеет nginx, конфигурация элементарна - работает очень быстро
Потому что большинство yii разработчиков чаще не знает о таком и использует всем понятный Apache. Люди Yii привыкли пользоваться только какими-то виджетами, или тем, что есть из коробки. Ну это мне так кажется)) А использование nginx требует большего понимания.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Библиотека по работе с изображениями и файлами

Сообщение samdark »

Пока из коробки не планируется. После начального релиза основных частей фреймворка посмотрим.
Ответить