Skip to main content
← Back to articles

Native PHP Architecture: Why Zero Framework?

8 min read

The Context

When I decided to rebuild my portfolio site, the framework question came up immediately. Laravel, Symfony, Slim — I've worked with all of them. But this time, the site is the demonstration of my skills. Using a framework would showcase Taylor Otwell's skills, not mine.

The Micro-Architecture

The pipeline is simple and transparent:

Request → Bootstrap → Middlewares → Router → Controller → Service → View → Response

Each component is a PHP 8.2+ class with declare(strict_types=1), readonly properties, and zero magic. The Router is 60 lines. The View engine is 80. The entire application code fits in ~2000 lines.

The Benefits

  • Performance: TTFB < 50ms locally, no 15ms framework bootstrap overhead
  • Total understanding: every line is mine, I know exactly what happens
  • Security: no framework attack surface, no CVEs to monitor
  • Size: zero Composer dependencies in Phase 1

The Pitfalls

The main trap is reinventing the wheel unnecessarily. You need to know when to stop. My Router handles static routes and named parameters — no complex middleware pipeline, no DI container, no service locator. Just what's needed for a portfolio site.

Conclusion

For a developer portfolio site, zero framework is a relevant choice. For a complex business application, I'd use Laravel or Symfony without hesitation. The key is choosing the right tool for the context — that's what software architecture is about.