Size: a a a

Laravel для начинающих

2020 February 03

АЗ

Алихан Закиров in Laravel для начинающих
Который потом сбросит в кеш
источник

АЗ

Алихан Закиров in Laravel для начинающих
Получается очень гибко
источник

АЗ

Алихан Закиров in Laravel для начинающих
Нигде ничего лишнего не хранится, и гибко меняется размер
источник

S

Sonic [Скупаю | Актуально всегда] in Laravel для начинающих
Игорь
В целом есть такой способ.

придумываешь случайное имя файла при сохранении, например a7bc4fed72ds.jpg

и кладешь его в папку для хранения изображений, но при этом берешь, допустим первые два символа от имени файла и как папку их делаешь, то есть в данном примере:
a7/a7bc4fed72ds.jpg

Таким образом у тебя файлы лягут равномерно по разным папкам.

Но! Ты сохранишь это все в папку original, что иметь доступ к оиргинальному изображению (аватара, допустим):

storage/public/avatars/original/a7/a7bc4fed72ds.jpg


Дальше твой код должен научится генерировать разные размеры аватарок или других изображений с заданным размером и помещать их в кэш.

То есть если в коде, ты запросишь аватар пользователя, например 100x150, то где-то там внутри вызовешь метод $user->getAvatar(100,150) и он тебе должен вернуть путь к этому файлу (не забудь про симлинк).
Проверит кэш - и вернет из кэша, если он есть, иначе вернет файл нужного размера (можешь еще обратить внимание на метод fit() от популярного расширения для работы с изображениями)

Но! чтобы случайно не положить твой сервер - гдето внутри заранее определи какие размеры изображений будут использоватся на твоем сайте и сверяйся с этим списком, иначе не выдавай ничего

Все новые сгенерированные картинки я кладу по тому же принципу, но уже в папку с нужным разрешением, например:

storage/public/avatars/100x150/a7/a7bc4fed72ds.jpg

В случае, если какой-то размер изображения перестал быть нужным - то сразу целиком сносишь эту папку со всеми изображениями и все

Даже можешь все снести папки с размерами, они легко восстановятся, когда будут запрошены (из оригиналов)
Лучше по extrasmall/small/large/extralarge
Изображения обрезают же для экономии трафика на разных устройках
источник

АЗ

Алихан Закиров in Laravel для начинающих
Sonic [Скупаю | Актуально всегда]
Лучше по extrasmall/small/large/extralarge
Изображения обрезают же для экономии трафика на разных устройках
алиасы можно завернуть в константы например
источник

S

Sonic [Скупаю | Актуально всегда] in Laravel для начинающих
Чтобы потом не запоминать размеры
источник

И

Игорь in Laravel для начинающих
Sonic [Скупаю | Актуально всегда]
Лучше по extrasmall/small/large/extralarge
Изображения обрезают же для экономии трафика на разных устройках
не лучше, завтра придет дизайнер и скажет давай кроме small сделай мне на 10 пикселей больше изображение
источник

А

Алексей in Laravel для начинающих
Игорь
не лучше, завтра придет дизайнер и скажет давай кроме small сделай мне на 10 пикселей больше изображение
😄
источник

АЗ

Алихан Закиров in Laravel для начинающих
Sonic [Скупаю | Актуально всегда]
Чтобы потом не запоминать размеры
const LARGE_SIZE = [‘width’ => 100, ‘height’ => 100]
источник

АЗ

Алихан Закиров in Laravel для начинающих
$user->getAvatarByAlias(LARGE_SIZE)
источник

S

Sonic [Скупаю | Актуально всегда] in Laravel для начинающих
Игорь
не лучше, завтра придет дизайнер и скажет давай кроме small сделай мне на 10 пикселей больше изображение
Пишов он нахер) Растянет. Главное сохранить пропорции
источник

И

Игорь in Laravel для начинающих
Алихан Закиров
const LARGE_SIZE = [‘width’ => 100, ‘height’ => 100]
а вот это уже вариант
источник

И

Игорь in Laravel для начинающих
Sonic [Скупаю | Актуально всегда]
Пишов он нахер) Растянет. Главное сохранить пропорции
метод fit(), я же писал про расширение image intervention
источник

И

Игорь in Laravel для начинающих
источник

АЗ

Алихан Закиров in Laravel для начинающих
intervention хорош, ага
источник

S

Sonic [Скупаю | Актуально всегда] in Laravel для начинающих
Игорь
метод fit(), я же писал про расширение image intervention
Не, суть я понял. Реализация хорошая.
Сталкивался с таким уже, но не видел смысла. Если на сайте 4-8 картинок 1980х1080 грузятся быстр ов 2020
Тот же гуглспид оценит сайт в 99/100
источник

АЗ

Алихан Закиров in Laravel для начинающих
Делай гуглспид на прогретой странице =)
источник

И

Игорь in Laravel для начинающих
Алихан Закиров
intervention хорош, ага
великолепен)
источник

АЗ

Алихан Закиров in Laravel для начинающих
там при желании можно и качество чуть порезать, им же, чтобы гуглспид показывал хорошие цифрки
источник

АЗ

Алихан Закиров in Laravel для начинающих
Только про ретину не забывайте пожалуйста
источник