-
Notifications
You must be signed in to change notification settings - Fork 0
Rutas
// routes.php
return [
'GET /ruta' => 'MiController@metodo',
'POST /ruta' => 'MiController@store',
'PUT /ruta/{id}' => 'MiController@update',
'DELETE /ruta/{id}' => 'MiController@destroy',
];Cuidado con los espacios. Las claves de ruta se comparan como strings exactos (
"GET /ruta"), así que un espacio extra por alineación de columnas ('GET /ruta') rompe el match en silencio — verás un 404 sin ningún error. Mantén exactamente un espacio entre el método y el path.
Los segmentos entre {nombre} se capturan y se pasan como argumentos al método:
// routes.php
'GET /articulos/{slug}' => 'ArticleController@show',
// ArticleController.php
public function show(string $slug): void { /* ... */ }Las rutas literales más específicas deben ir antes que los patrones dinámicos que puedan coincidir con la misma URL:
'GET /todo/create' => 'TodoController@create', // debe ir primero
'GET /todo/{id}' => 'TodoController@show', // si no, esto captura "create" como idLos navegadores solo envían GET y POST de forma nativa. Para usar PUT/DELETE desde un formulario HTML normal:
<form method="POST" action="/todo/42">
<input type="hidden" name="_method" value="DELETE">
<button type="submit">Eliminar</button>
</form>Navegador → public/index.php → App::run()
│
├── loadEnv() Lee .env → $_ENV
├── registerAutoloader() Busca clases en core/, controllers/, models/
├── configureErrors() Debug on/off según APP_DEBUG
└── dispatch()
│
├── Detecta método HTTP (+ override _method)
├── Normaliza la URI
├── (si hay prefijo tipo selector de idioma) quita /xx/ y fija el idioma
├── Encuentra ruta exacta o patrón {param}
└── Instancia el Controller → llama método($params)
│
└── $this->view('nombre', $data)
Si usas el selector de idioma por URL de Internacionalización (/en/todo, /es/todo), no necesitas duplicar rutas con un segmento de idioma — el router quita un prefijo /xx/ reconocido antes de comparar contra routes.php, así que una única entrada 'GET /todo' funciona para cada idioma habilitado.
- Tabla SQL en tu base de datos.
-
models/TuModelo.php— ver Modelos. -
Rutas en
routes.php. -
controllers/TuController.php— ver Controladores y peticiones. -
Vistas en
views/tu-recurso/— ver Vistas y layout.