Architecture Experiment
PHP API Benchmark
Experimental project comparing how different PHP frameworks behave when implementing the same small REST API.
3 Implementations
Plain PHP, Laravel and Symfony implementations.
Single Domain
The same entity and rules implemented in all frameworks.
Architecture Focus
Comparing complexity, DX and evolution capacity.
This project explores how different architectural approaches affect the development and evolution of a small backend API.
The goal is not to determine which framework is "better", but to analyze how each approach handles complexity, structure and developer experience when solving the same problem.
🧩 Domain Model
The benchmark is built around a very small domain: a habit tracking API. The system allows users to define personal habits and track their completion progress over time.
- Create habits
- List existing habits
- Update habit configuration
- Register habit completion
🗂️ Entity: Habit
Each habit represents a recurring activity the user wants to track.
⚙️ Framework Implementations
- PHP — Minimal implementation without a framework, focusing on explicit routing and manual dependency management.
- Laravel — Implementation using Eloquent models, controllers and Laravel's typical service architecture.
- Symfony — Implementation using Symfony controllers, dependency injection and Doctrine ORM.
📊 Evaluation Criteria
Each implementation will be evaluated across several dimensions:
- Structural complexity
- Developer experience during implementation
- Ease of adding new features
- Testability of the system
🎯 Project Goal
The purpose of this experiment is to better understand the trade-offs between simplicity and abstraction in backend development.
By implementing the same API with different architectural approaches, it becomes easier to evaluate how frameworks influence the evolution of a codebase as complexity grows.