
Автозагрузка в PHP: рабочие приёмы через Composer и PSR-4
Как настроить автозагрузку классов в PHP-проекте: PSR-4 через Composer, classmap для чужого кода, files для хелперов. Что выбрать под каждую задачу и чем платишь за каждый вариант.

Как настроить автозагрузку классов в PHP-проекте: PSR-4 через Composer, classmap для чужого кода, files для хелперов. Что выбрать под каждую задачу и чем платишь за каждый вариант.

Форма отдаёт «413 Request Entity Too Large» или белый экран при заливке файла на 200 МБ. Разбираем, какие лимиты PHP и веб-сервера режут загрузку и как их согласовать между собой.

Форма загрузки работает на файле 2 МБ, но падает на 200 МБ с белым экраном или 413. Разбираем, какие лимиты PHP, Nginx и PHP-FPM надо согласовать до выката.

Пользователь загружает видео на 800 МБ, PHP отдаёт 500 или обрывает соединение на середине. Разбираем, почему прямой upload не тянет большие файлы и какие четыре подхода решают проблему.

Отчёт на 5000 строк кладёт PHP-воркер по памяти, а красивый инвойс из HTML разъезжается на печати. Разбираем, какие библиотеки для PDF и Excel выбрать под задачу и чем каждая платит.

Отчёты на 20 тысяч строк валят память, кириллица в PDF превращается в квадратики, а Excel открывает файл с предупреждением о повреждении. Разбираем рабочие подходы к генерации документов на PHP.

Загрузка аватарки на 40 мегапикселей роняет PHP-процесс по памяти, а MIME-типу из формы верить нельзя. Разбираем типичные ошибки обработки изображений и рабочие приёмы для GD и Imagick.

AddressSanitizer, UBSanitizer и ThreadSanitizer ловят use-after-free, гонки и переполнение буфера в рантайме. Разбираем, как включить их в проекте и не сломать себе CI ложными и настоящими срабатываниями.

Загрузка аватарки в 8 мегапикселей кладёт PHP-процесс по памяти, а «проверка по расширению» пускает на сервер PHP-шелл под видом картинки. Разбираем ошибки, на которые натыкаются почти все.

Загрузка картинок кажется тривиальной, пока сервер не падает от 40-мегапиксельного PNG или пока в аплоаде не оказывается PHP-скрипт под видом JPEG. Разбираем, что проверить до релиза.

Вебхук от платёжки пришёл дважды — и вы дважды выдали товар. Разбираем, что проверить в PHP-обработчике до выката: подпись, идемпотентность, таймауты и повторы.

Синхронная обработка вебхука в контроллере кажется очевидной, пока отправитель не начинает ретраить по таймауту. Разбираем четыре способа принять вебхук в PHP и считаем цену каждого.