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.
Mediante el comando artisan:
php artisan make:controller <NOMBRE_CONTROLADOR>
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:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HomeController extends Controller { // }
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);