Собственный движок
devgine / web.
Собственный PHP-веб-движок: PSR-стандарты, аккуратно реализованные с нуля, строгая типизация, тесты. Closed source — этот сайт работает на нём.
- Роль
- Автор и мейнтейнер
- Период
- в разработке
- Stack
-
- PHP 8.5
- PSR-7/11/15/16
- PHPStan max
- PHPUnit
- 0 Dependencies
Контекст
Фреймворки решают проблемы, которых у многих проектов просто нет — и платят за это сложностью, магией и вечной гонкой обновлений. devgine/web идёт другим путём: самостоятельно и чисто реализовать PSR-стандарты, принести с собой всё существенное и при этом остаться полностью понятным. Кто читает devgine — понимает, что происходит. Ни одного слоя, который никто не может объяснить.
Решение и главное
-
Ядро на PSR — без магии
Контейнер (PSR-11) с автовайрингом, contextual bindings и сервис-провайдерами; собственные HTTP-сообщения (PSR-7); onion-пайплайн middleware (PSR-15) с security-заголовками из коробки.
-
Роутинг — явный и именованный
Именованные маршруты, параметры с regex-ограничениями, маршруты через атрибуты, route-model-binding. Контроллеры получают аргументы из маршрута и контейнера — без скрытых слоёв.
-
Вьюхи и компоненты
Шаблоны на чистом PHP с лейаутами и секциями; компоненты объединяют HTML, CSS и JS, а ассеты дедуплицируются автоматически.
-
БД, Auth и консоль
QueryBuilder с prepared statements, schema-builder и миграции с CLI; session-guard, remember-me и CSRF-защита; собственная консоль — миграции, генерация ключей, dev-сервер, свои команды.
-
Качество как правило, а не цель
PHPStan на уровне max без baseline — каждый диагноз чинится, а не подавляется. PHPUnit-тесты для каждого публичного API как условие мержа, PSR-12, строгий SemVer, Conventional Commits.
-
Security by default
Автоэкранирование во вьюхах, CSRF для всех изменяющих состояние запросов, только параметризованный SQL, cookies HttpOnly + SameSite + Secure по умолчанию.
Скриншоты