Framework PHP minimalista para aprender routing, ciclo HTTP, middlewares, helpers globales, renderizado de vistas y bootstrap de aplicación desde una base propia.
El proyecto ya incluye:
- Bootstrap central con
Framework\App - Contenedor simple con instancias singleton
- Helpers globales para
app(),singleton(),json(),redirect(),view()yrequest() - Router con soporte para
GET,POST,PUT,PATCH,DELETE - Rutas con parámetros como
/test/{param} - Middlewares por ruta
- Objetos
RequestyResponsecon helpers para headers, query, body y route parameters - Motor de vistas
View\MiEnginecon layouts y renderizado de plantillas PHP - Adaptador de servidor nativo (
PhpNativeServer) - Suite de pruebas para HTTP, routing y vistas
- Generación de documentación con
phpDocumentor - Formato de código con
PHP-CS-Fixer
- PHP
^8.2 - Composer
composer installphp -S localhost:8000 -t publicEl front controller actual vive en public/index.php y utiliza Framework\App::bootstrap() para levantar router, request, server adapter y view engine.
composer tests
composer tests:quick
composer tests:one -- tests/HTTP/ResponseTest.php --filter test_json_response_is_structured_correctly
composer test-coverage
composer cs:check
composer cs:fix
composer docs:generateLa documentación generada se escribe en build/docs.
El comando composer docs:generate genera la API de src/ y tests/. public/index.php también está documentado con DocBlocks, pero se mantiene fuera del HTML generado porque funciona más como bootstrap de ejecución que como API reusable.
public/
index.php # Front controller
src/
App.php # Application bootstrap and runtime coordination
Container/
Container.php # Simple singleton container
Helpers/
AppHelper.php # Global helpers for app/container access
HttpHelper.php # Global HTTP and view response helpers
Http/
HttpMethod.php
HttpNotfoundException.php
Middleware.php
Request.php
Response.php
Routing/
Route.php
Router.php
Server/
PhpNativeServer.php
Server.php
View/
MiEngine.php # Layout-based PHP view engine
View.php # View rendering contract
tests/
HTTP/
RequestTest.php
ResponseTest.php
Routing/
RouteTest.php
RouterTest.php
View/
MiEngineTest.php
App::bootstrap()crea el contenedor mínimo de aplicación.- El adaptador
PhpNativeServerconstruye unRequest. Routing\Routerresuelve la ruta y asigna elRouteal request.- Si la ruta tiene middlewares, se ejecuta la cadena antes de la acción final.
- La acción devuelve un
Responseo usa helpers comojson()oview(). - Si la respuesta es HTML,
View\MiEnginerenderiza la plantilla y su layout. - El server adapter envía la respuesta final al cliente.
- Mejorar manejo de errores HTTP (
404,405,500) - Definir una estrategia de middlewares globales además de middlewares por ruta
- Fortalecer el contenedor para resolución de dependencias más allá de singletons
- Aumentar cobertura de casos borde para middlewares, headers y errores de routing
- Añadir pruebas para helpers globales y respuestas HTML
- Separar middlewares de ejemplo fuera del front controller