Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:frameworks:laravel:controladores

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
informatica:programacion:php:frameworks:laravel:controladores [2025/02/11 13:05] – creado tempwininformatica:programacion:php:frameworks:laravel:controladores [2025/02/11 17:16] (actual) – [Creación de controladores] tempwin
Línea 3: Línea 3:
 [[informatica:programacion:php:frameworks:laravel|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'':
 +
 +<code php>
 +php artisan make:controller <NOMBRE_CONTROLADOR>
 +</code>
 +
 +Por ejemplo, creamos un controlador para administrar la ruta principal (''/'')
 +
 +<code php>
 +php artisan make:controller HomeController
 +</code>
 +
 +Se habrá creado un fichero ''HomeController.php'' dentro de ''app/Http/Controllers'' con el siguiente contenido:
 +
 +<code php>
 +<?php
 +
 +namespace App\Http\Controllers;
 +
 +use Illuminate\Http\Request;
 +
 +class HomeController extends Controller
 +{
 +    //
 +}
 +</code>
 +
 +Para asignarle el control de la ruta a un controlador, en el archivo ''routes/web.php'':
 +
 +<code php>
 +use Illuminate\Http\Controllers\HomeController;
 +
 +Route::get("/", [HomeController::class, 'index']);
 +</code>
 +
 +La ruta ''/'' será gestionada por el controlador ''HomeController'' y el método ''index''.
 +
 +Cuando un controlador tiene un único método, podemos llamarlo ''%%__%%invoke'':
 +
 +<code php>
 +namespace App\Http\Controllers;
 +
 +use Illuminate\Http\Request;
 +
 +class HomeController extends Controller
 +{
 +    public function __invoke() {
 +        return "Bienvenido a la página principal";
 +    }
 +}
 +</code>
 +
 +Y donde lo vayamos a usar no tendremos que indicar el método:
 +
 +<code php>
 +use Illuminate\Http\Controllers\HomeController;
 +
 +Route::get("/", HomeController::class);
 +</code>
informatica/programacion/php/frameworks/laravel/controladores.1739275556.txt.gz · Última modificación: por tempwin