Микрофреймворк на PHP: 4 выгоды для небольших задач
Внутренний инструмент: три роли, сорок экранов, одна база, срок в неделях. Две сметы расходятся втрое, и обе честные. Разница в том, что лежит под приложением, и микрофреймворк на PHP часто объясняет меньшую цифру.
Код: ATOM, лицензия GPL-3.0.
Каждый пакет в дереве зависимостей нужно поставить, обновить, пропатчить и объяснить. На проекте, который живёт пять лет, этот список превращается в счёт, который приходит и после запуска.
Одна зависимость вместо тридцати
composer require globus-studio/atom добавляет пакет и больше ничего: ни HTTP-фабрики, ни ридера аннотаций, ни набора PSR-мостов. Рантайм здесь это PHP 8.5 с PCRE в основе, а документация читается за один вечер.
Деньги уходят не на скачивание. Они уходят на окно обновлений: дерево из тридцати пакетов раз в квартал выдаёт то совет по безопасности, то ломающее изменение, и кто-то должен прочитать changelog, прогнать тесты и принять решение. С одной зависимостью та же работа занимает час.
Число маршрутов перестаёт влиять на цену запроса
Большинство небольших фреймворков перебирает маршруты циклом: сравнил, не подошло, сравнил снова. Сорок маршрутов это терпит. Четыреста дают заметный налог на каждый запрос, и налог растёт вместе с таблицей.
ATOM компилирует всю таблицу в один шаблон PCRE и диспетчеризует одним preg_match. Десять тысяч маршрутов всё равно стоят одного сравнения на запрос. Для внутреннего API, который растёт, это ёмкость, которую не нужно покупать более мощным сервером.
То, что иначе собираешь по частям
Готовые части это вторая причина, по которой смета меньше: валидация на 18 правилах-атрибутах, шаблоны с наследованием и блоками, сессии с ротацией CSRF, CORS, загрузка файлов, обёртка над PDO, логгер с ротацией, файловый и массивный кеш, ORM со связями и CLI.
Набор отдельных пакетов делает ту же работу. К нему прилагаются четыре лишних обзора лицензий, четыре графика релизов и четыре места, где минорная версия меняет поведение при зелёных тестах.
Код остаётся читаемым после передачи
728 тестов, 1108 утверждений, покрытие строк 85,29%, PHPStan уровня 5. Числа не доказывают качество, зато делают проект передаваемым: следующий разработчик запускает composer test и получает ответ, а чтение исходников занимает день, не месяц.
Передача проекта это место, где прячется основная часть стоимости владения. Код, который разработчик среднего уровня дочитал до конца, дешевле в поддержке, чем код, которому нужен автор.
Где микрофреймворк на PHP заканчивается
Миграций нет, генератора админки нет. Корпоративная CMS, многотенантный SaaS с матрицей прав и магазин с настоящим каталогом живут в Laravel или WooCommerce, где эти задачи уже решены.
Интернет-магазин на ATOM технически возможен с самописной корзиной, и README говорит об этом прямо. Это повод посмотреть на WooCommerce, а не писать корзину с нуля.
Что микрофреймворк на PHP меняет в бюджете
Ставки не двигаются. Разработка на PHP на украинском рынке стоит около 30–50 $ в час, MVP на Laravel начинается примерно с 8 000 $. Двигается число часов: меньше сборки, меньше окон обновления, быстрее онбординг.
Поэтому выбор фреймворка виден в бюджете поддержки, а не в колонке лицензий. Бесплатное ПО с тяжёлым деревом зависимостей не дешевле бесплатного ПО без дерева.
Как выбирать
Три вопроса решают дело. Нужны продукту миграции и генератор админки? Команда больше кодовой базы? Через два года его будет сопровождать посторонний человек?
Два ответа «да» ведут к полному фреймворку. Один «да» и два «нет» ведут к тому, что можно дочитать за день, и для такого случая ATOM и писался.
Рядом: разработка на PHP о том, что стоит вокруг этого стека, и веб-разработка о том, как считается объём работ. В соседней статье разобран инференс ИИ на PHP, когда тому же сервису нужно отвечать моделью.
Что почитать: заметки о выпуске PHP 8.5 и ATOM на Packagist.
