Own engine
devgine / web.
My own PHP web engine: PSR standards implemented cleanly from scratch, strictly typed, tested. Closed source — this site runs on it.
- Role
- Author & maintainer
- Period
- ongoing
- Stack
-
- PHP 8.5
- PSR-7/11/15/16
- PHPStan max
- PHPUnit
- 0 Dependencies
Context
Frameworks solve problems many projects simply don't have — and pay for it with complexity, magic and forced updates. devgine/web takes the other road: implement the PSR standards cleanly from scratch, ship everything essential, and stay fully understandable. Whoever reads devgine understands what happens — no layer nobody can explain.
Solution & highlights
-
Full stack, zero dependencies
Container (PSR-11) with autowiring and service providers, custom HTTP messages with an onion middleware pipeline (PSR-7/15), query builder, migrations, auth, validation, caching (PSR-16), events, mail, logging and its own CLI — all self-implemented, only PSR interfaces as dependencies.
-
Explicit over magic
Named routes with regex constraints, attribute routes and route model binding; controllers get their arguments from route and container — every step readable, nothing happens behind your back.
-
Views & components
Plain PHP templates with layouts and sections; components bundle HTML, CSS and JS — assets are deduplicated automatically.
-
PHPStan max — no baseline
Every finding gets fixed, not suppressed. No @-silencing, no empty catches, no mixed where a precise type is possible. Tests for every public API are a merge condition.
-
Security by default
Auto-escaping in views, CSRF for all state-changing requests, parameterized SQL only, cookies HttpOnly + SameSite + Secure out of the box.
-
Proof of work
This very site runs on devgine/web — in production, not as a demo. Strict SemVer, Conventional Commits and a Keep-a-Changelog changelog keep the project honest.
Screenshots