====== Controladores en Laravel ======
[[informatica:programacion:php:frameworks:laravel|Laravel]]
Aunque podríamos redigir las peticiones HTTP desde el fichero ''routes/web.php'', no es recomendable hacerlo desde ahí. El fichero crecería demasiado dificultando su mantenimiento.
Hay que trabajar con ficheros externos donde coloquemos la lógica que necesitemos.
===== Creación de controladores =====
Mediante el comando ''artisan'':
php artisan make:controller
Por ejemplo, creamos un controlador para administrar la ruta principal (''/'')
php artisan make:controller HomeController
Se habrá creado un fichero ''HomeController.php'' dentro de ''app/Http/Controllers'' con el siguiente contenido:
Para asignarle el control de la ruta a un controlador, en el archivo ''routes/web.php'':
use Illuminate\Http\Controllers\HomeController;
Route::get("/", [HomeController::class, 'index']);
La ruta ''/'' será gestionada por el controlador ''HomeController'' y el método ''index''.
Cuando un controlador tiene un único método, podemos llamarlo ''%%__%%invoke'':
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function __invoke() {
return "Bienvenido a la página principal";
}
}
Y donde lo vayamos a usar no tendremos que indicar el método:
use Illuminate\Http\Controllers\HomeController;
Route::get("/", HomeController::class);