feat: extract MediaController, wire into Dispatcher, delete media.php

This commit is contained in:
Pontoporeia
2026-04-17 11:44:08 +02:00
parent b03be51b92
commit 75f808bee4
157 changed files with 1713 additions and 452 deletions

View File

@@ -0,0 +1,58 @@
# Analysis: Proposed PHP Structure Reorganization
## Summary
The proposed structure is a standard Laravel/Symfony-inspired architecture, but **overengineered for this project's scale and conflicts with existing architectural decisions**.
## Key Issues
### 1. Redundant Separation
The project already has good separation of concerns:
- Controllers in `src/` (14 focused classes)
- Templates in `templates/`
- Data in `storage/` (outside web root)
- Organized tests
### 2. Conflicts with Existing Decisions
- **`docs/orm-assessment.md`** explicitly decided against Doctrine/ORM → Proposed `src/Model/` entities contradict this
- **No Composer** in current project → Proposed structure requires PSR-4 autoloading
- **`App.php` already does the job** → Adding `Core/AppKernel.php` is redundant
### 3. Overengineering
- Repository + Service + Model layers for a ~15 page SQLite app creates 3x the code
- `ThesisCreationService`, `AuthService`, `ExportService` split logic that's currently cohesive
- `Config/Settings.php` replaces working `config/bootstrap.php` for no clear benefit
## What Actually Makes Sense
### High Value, Low Cost:
1. **`.env` for secrets** → Replace hardcoded credentials pattern
2. **Single entry point** → Move to `public/index.php` routing (requires nginx config changes)
3. **Keep logic out of `public/`** → Already partially achieved
### Medium Value:
4. **Consolidate `src/` classes** → Group into subdirectories without full MVC overhaul
5. **Move `test.db` from root** → Into `storage/` where it belongs
### Low Value (Skip):
- Entity classes (conflicts with ORM assessment)
- Repository pattern (SQLite direct access is fine)
- Service layer over-splitting
- Composer integration (unless you need PHP packages)
## Recommendation
**Do NOT adopt the full proposed structure.**
Instead, make incremental improvements:
1. Add `.env` support
2. Consolidate to single entry point
3. Organize `src/` into logical subdirectories
4. Move stray files to proper locations
This achieves 80% of the benefits at 20% of the cost.
## Questions to Consider
1. Are you planning to add external PHP dependencies? (If yes, Composer makes sense)
2. Do you expect multiple developers to work on this simultaneously? (Justifies stricter structure)
3. Is the current codebase difficult to maintain? (If no, restructure is premature optimization)