Triangle: совместимость и проверенный запуск
Constraints пакетов и реальный запуск
Заголовок раздела «Constraints пакетов и реальный запуск»Engine объявляет PHP ^8.1, intl/json и Server ^4; Web scaffold требует PHP ^8.2 и curl/json. Это разные уровни. Примеры Server 7 не подтверждают совместимость Triangle.
Проверенный сценарий, 2026-10-17
Заголовок раздела «Проверенный сценарий, 2026-10-17»Маршрут из быстрого старта вернул HTTP 200 и {"message":"Hello, Reader"} в изолированной копии Web на PHP 8.3, Engine 8.1.10, HTTP 2.0.10, Router 2.0.5 и Server 4.5.1. Использован установленный набор зависимостей, добавлено приведение worker count к int и отключён process monitor. Это не доказывает, что новый create-project разрешит тот же набор. Зафиксируйте lock своего приложения и проверяйте его отдельно.
На PHP 8.5.4 этот набор падает до маршрута: неявные nullable-параметры Console 1.1.8 вызывают deprecation, превращаемый обработчиком Engine в исключение. Широкий constraint Composer не подтверждает PHP 8.5. Подавление deprecation не является исправлением совместимости. Изменение PHP.
Конфигурация Web также передаёт SERVER_COUNT строкой. Используйте явное приведение из быстрого старта; иначе типизированный helper запуска Server может выбросить TypeError.
Отличия response и bootstrap
Заголовок раздела «Отличия response и bootstrap»Для прямого JSON-контракта используйте responseJson($data, $status). У response($data, $status) другое поведение: envelope/debug/view и учёт http_always_200. Настроенный renderer вызывается через view(), а не несуществующий фасад View. Маршруты регистрируются исполняемым config/route.php; обычные конфигурации возвращают массивы. Регистр namespace контроллера должен совпадать с каталогом.
Оставшееся покрытие
Заголовок раздела «Оставшееся покрытие»В старых руководствах компонентов ещё есть непроверенные примеры. SaaS template-страницы помещены в карантин, а не опубликованы как API Triangle. Middleware, lifecycle БД/сессий, плагины, reload worker и production требуют отдельных исполняемых проверок. Рабочий минимальный маршрут не означает полную сверку фреймворка.
Источники: Web, Engine, Router. Ivan Zorin / Localzet Group.