25. Invoke
En este capítulo, aprenderás cómo utilizar la función __invoke en Laravel 10. __invoke es un método mágico de PHP que permite a una clase ser llamada como una función. Te enseñaremos cómo utilizar la función __invoke en Laravel 10 para crear controladores más simples y legibles.
4 comentarios
Inicia sesión para comentar
Comentarios:
-
Victor Arana Flores hace 1 año Destacado
En algunas ocasiones, la lógica de una acción en particular puede ser lo suficientemente compleja como para justificar la creación de un controlador completo para esa acción en particular. En estos casos, Laravel permite crear controladores de acción única.
Para crear un controlador de acción única en Laravel, se debe definir el método "__invoke" dentro del controlador. Este método se ejecutará cuando se llame a la acción. A continuación, se muestra un ejemplo de un controlador de acción única para provisionar un nuevo servidor web:
<?php namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\Response; class ProvisionServer extends Controller { /** * Provision a new web server. */ public function __invoke() { // ... } }
Para registrar una ruta para un controlador de acción única, se debe pasar el nombre del controlador al enrutador, sin especificar el nombre del método. Por ejemplo:use App\Http\Controllers\ProvisionServer; Route::post('/server', ProvisionServer::class);
También se puede generar un controlador de acción única usando el comando Artisan make:controller con la opción --invokable:php artisan make:controller ProvisionServer --invokable
De esta manera, Laravel permite una mayor flexibilidad en la organización de los controladores y la lógica de las acciones en una aplicación web.
-
Miguel Angel Riasco hace 5 meses
buen curso
-
Alex Labanino hace 2 años
Borre el index del `→name('about');` y funciona sin problemas! ? Esta bueno el curso, gracias!
-
Sammy Joseph hace 1 año
Funcionará sin importar el nombre que pongas porque se usa solo para dar referencia a esta ruta.
-
-
Ramon Batista hace 2 años
Y en la parte de Web.php se debe dejar la parte que dice -→name(about.index) ? … o sea, la parte de ‘index’ se debe mantener aunque uno use el __invoke ?
-
Victor Arana Flores hace 2 años
El name es el nombre que tu le quieras dar. Si gustas le puedes poner el nombre “abc”
Los nombre de las rutas sirven para hacer referencia a ellas, por su nombre, mas no tiene nada que ver con el nombre del metodo que lo controle.En este caso en particular yo suelo nombrarlo con el nombre de la uri, seguido del nombre del metodo que lo administra. Pero eso es simplemente el orden que yo sigo. También organizo mis vistas siguiendo esa sintaxis. Pero eso es una cuestion de como tu decidas organizarte.
-