Eigen engine
devgine / web.
Een eigen PHP-web-engine: de PSR-standaarden netjes zelf geïmplementeerd, strikt getypeerd, getest. Closed source — deze site draait erop.
- Rol
- Auteur & maintainer
- Periode
- doorlopend
- Stack
-
- PHP 8.5
- PSR-7/11/15/16
- PHPStan max
- PHPUnit
- 0 Dependencies
Context
Frameworks lossen problemen op die veel projecten helemaal niet hebben — en betalen daarvoor met complexiteit, magie en update-dwang. devgine/web kiest de andere route: de PSR-standaarden netjes zelf implementeren, alles wat wezenlijk is meebrengen en daarbij volledig begrijpelijk blijven. Wie devgine leest, snapt wat er gebeurt — geen enkele laag die niemand kan uitleggen.
Oplossing & highlights
-
Complete kern, 0 dependencies
Container (PSR-11) met autowiring en service-providers, eigen HTTP-messages met onion-middleware-pipeline (PSR-7/15), routing met benoemde routes, regex-constraints en route-model-binding — alles zelf gebouwd, alleen PSR-interfaces als afhankelijkheid.
-
Views & components
Plain-PHP-templates met layouts en sections; components bundelen HTML, CSS en JS — assets worden gededupliceerd. Routes en controllers blijven expliciet en zonder magie.
-
Database, auth & validatie
QueryBuilder met prepared statements, schema-builder en migraties via CLI; session-guard met remember-me, CSRF-bescherming en cookies HttpOnly + SameSite + Secure by default; declaratieve validatieregels zonder extern pakket.
-
PHPStan op level max — zonder baseline
Elke finding wordt gefixt, niet onderdrukt. Geen @-operator, geen lege catches, geen mixed waar een precies type mogelijk is.
-
Tests voor elke publieke API
PHPUnit-coverage is een voorwaarde om te mergen — net als een guide-hoofdstuk met werkend voorbeeld voor elke feature. PSR-12 via php-cs-fixer, strikt SemVer, conventional commits.
-
Security by default
Auto-escaping in views, CSRF voor alle state-changing requests, uitsluitend geparametriseerde SQL, crypto alleen met standaard-primitieven.
Inkijkjes