Enrutamiento
Las rutas se almacenan en la carpeta routes, por defecto contiene un archivo llamado web.php.
Para indicar cada ruta se llama a la variable $router->[método]([ruta],[callback])
Métodos:
post: Acepta peticiones por POST
get: Acepta peticiones por GET
put: Acepta peticiones por PUT
delete: Acepta peticiones por DELETE
Ejemplo llamando a un callback
use libs\HTTP\Request;
$router->get('/',function(Request $request){
return view('index');
});
Ejemplo llamando a un método del controlador: Se llama entre comillas el nombre del contrador apartir de la ruta (app\Controllers\Controller.php) seguido de un @ y posteriormente el nombre del método
$router->get('/',"Controller@index");
Ejemplo de ruta con variables. Hay dos formas de obtener las variables una es usando el método input('nombre_variable') dentro del o accediendo como variable del objeto Request. Para indicar una variable se pone entre llaves {variable} y se desea que sea opcional se usa el signo ? después del nombre de la variable {variable_opcional?}.
$router->get('/saludar/{nombre}/{edad?}',function(Request $request){
$nombre=$request->input('nombre'); // Obligatoria
$edad=$request->edad; // Opcional
return "Hola ".$nombre." tienes ".$edad;
});
También se puede obtener el encabezado y un array asociativo con las variables de un protocolo en específico. Se puede pasar como parámetro una clave para obtener un dato especifico del array $request->get('nombre').
$router->get('/saludar/{nombre}/{edad?}',function(Request $request){
return json([
'header'=>$request->header,
'get'=>$request->get,
'post'=>$request->post,
'files'=>$request->files,
'cookie'=>$request->cookie,
'session'=>$request->session,
]);
});
Puede usar un nombre clave con el método name('clave') para obtener la url del enrutamiento por medio del helper route('home'), dando como resultado http://127.0.0.1:8000/home/es
$router->get('/home/es',function(Request $request){
return view('index');
})->name('home');
También puede llamar a un middleware por medio del alias configurado en config/middleware.php o por medio de la clase.
$router->get('/home/es',function(Request $request){
return route('home');
})->name('home')->middleware('auth',app\Middlewares\Authenticate::class);
Last updated