davists/Lumen-Doctrine-DDD-Example
51.7
Weak · 22 September 2026
3.6k
lines of production code
PHP
primary language
7
measurements over time
What this system is
This system is a PHP-based backend service built on the Lumen framework, designed to manage product and category data through a relational database. It provides a RESTful API secured with JWT authentication and CORS headers, while utilizing Doctrine ORM for data persistence. The architecture supports comprehensive testing across unit, functional, and acceptance levels to ensure business logic and endpoint reliability.
Features
Initial Lumen 5.3 application scaffolding and configuration
The Lumen 5.3 application structure has been established, including the entry point, bootstrap, and configuration files for database, Doctrine ORM, and filesystems. The update introduces a custom exception handler that formats error responses as JSON, implements CORS and JWT authentication middleware, and registers service providers for domain services and repositories. Additionally, environment variables for database, JWT, and S3 storage are configured.
(repo-wide) · high confidence
Initial database schema and seeding for product and category entities
The application now includes the initial database migrations to create the 'product', 'category', and 'product\_category' (many-to-many) tables, along with a 'cache' table for session/storage management. Additionally, database seeders have been added to populate the 'DataTestSeeder' and 'DatabaseSeeder', enabling the database to be initialized with test data.
database · high confidence
Test coverage
Added test directory structure and documentation
Added .gitkeep files to the Acceptance, Contract, Functional, and Unit test directories to preserve the directory structure in version control. Additionally, a wiki file was added to the tests directory, providing documentation on the purpose of each test type: Unit for small code units, Contract for endpoint activity, Functional for business rules, and Acceptance for end-to-end business flows.
tests · high confidence
Dependencies
Initial project setup with Lumen and Doctrine dependencies
The project is initialized with a composer.json file that defines the application's PHP and third-party dependencies. This includes the Lumen framework, Doctrine ORM, and various libraries for authentication, serialization, and file storage, establishing the technical foundation for the service.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 51 → 52 (+0.9)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 96 → 97 (+1.2)
- Architecture 100 → 78 (-22.4)
- Maturity 67 → 85 (+17.6)
- Readiness 15 → 15 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (10)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (14 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
- Duplicated block (15 lines × 3) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
- Duplicated block (8 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/AbstractRepository.php)
- No exposed public API
- The Usage assumes Composer install and environment setup but does not show how to run the API endpoint (GET /api/v1/products) or what responses to expect. (README.md)
- early-stage repository — too little history to judge knowledge freshness
- git history depth insufficient
- git history depth insufficient
- single-maintainer — knowledge-concentration (bus factor) risk
New (9)
- Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
- Documentation: no installation or build instructions (README.md)
- Duplicated block (15–17 lines × 3) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
- Duplicated block (16 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/CategoryRepository.php)
- Duplicated block (31 lines × 2) (Application/Services/CategoryService.php)
- Duplicated block (5 lines × 2) (Application/Lumen53/core/Http/Controllers/CategoryController.php)
- Duplicated block (9–11 lines × 2) (Infrastructure/Persistence/Doctrine/Repositories/AbstractRepository.php)
- TodoComment (Application/Lumen53/core/Http/Middleware/CORSMiddleware.php)
- TodoComment (Domain/Services/ProductService.php)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
davists/Lumen-Doctrine-DDD-Example was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit a473217c45bd930611e49f9933c6bb5291b4bffd — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.