Media — обработка изображений

triangle/media содержит PHP-классы для загрузки и преобразования изображений. Пакет требует PHP ^8.1, triangle/engine ^8.1, расширения ext-curl и ext-imagick, а также доступную для записи директорию хранилища.

composer require triangle/media
 

Основные классы пакета — Triangle\Media\Uploader и Triangle\Media\ImageProcessing. ImageProcessing предоставляет операции кадрирования, изменения размера, pixelize, добавления cover и получения изображения как blob.

Хранилище

Плагин хранит обработанные изображения в plugin.triangle.media.app.image_path. Если директории нет, загрузчик создаёт её вместе с родительскими каталогами; PHP-процессу нужно разрешение на запись. Публичный URL задаётся отдельно в image_uri; он должен указывать на ту же директорию через веб-сервер или CDN.

return [
    'image_path' => public_path() . '/media/upload/',
    'image_uri' => 'https://example.com/media/upload/',
];
 

Настройте фактические пути и домен своего приложения. Значение image_uri не создаёт маршрут и само по себе не публикует файлы.

Приём изображений

Uploader принимает загруженный файл или загружает изображение по ссылке. Сетевой импорт разрешает только HTTP и HTTPS на стандартных портах, не следует перенаправлениям и отклоняет адреса, которые разрешаются в непубличные IP. Скачивание ограничено max_file_size (по умолчанию 15 MiB). Обработка Imagick ограничивает совокупное число пикселей (max_image_pixels, 40 млн), число кадров (max_image_frames, 50), память (256 MiB), временный диск (512 MiB), время (10 секунд) и число потоков (1). Эти параметры настраиваются в plugin.triangle.media.app.

Перед подключением контроллера проверьте авторизацию проекта и ограничение частоты запросов. Сетевые ограничения не заменяют лимиты размера тела запроса и таймауты на reverse proxy / Localzet Server. Загружать можно только изображения с MIME-типами из mime_types.

Точные версии и расширения приведены в матрице совместимости.