Stack
Stack
Nothing experimental: a small, boring stack that a client can keep running.
| PHP 8.5 | plain PHP templates with framework layering |
|---|---|
| ThinkPHP 8 | routing, controllers, ORM, middleware, validators |
| SQLite / MySQL | SQLite by default for single-server sites, MySQL when needed |
| Nginx + PHP-FPM | dedicated pool, long cache for assets, none for HTML |
Layering
Routes, controllers, models, middleware and validators stay on the framework side; templates stay as plain PHP. Data access goes through the ORM, never through ad-hoc SQL scattered in views.
Operations
Dedicated PHP-FPM pool per site, long cache for assets, HTML never cached, logs under the application directory. A single server is enough for a site of a few thousand pages.