Controladores Laravel - Diferentes controladores de Laravel con sus características

Tabla de contenido:

Anonim

Introducción a los controladores Laravel

Toda su aplicación se puede crear simplemente usando Closures en el archivo routes.php, se volvería desordenado pero será factible. ¿Qué sucede si posiblemente puede organizar todo su proceso con la ayuda de las clases Controller? A ver cómo. Los controladores son capaces de agrupar dentro de una clase, todas las lógicas asociadas al manejo de solicitudes. La aplicación de directorio / Http / Controllers es responsable de almacenar los controladores. En el marco MVC, 'C' significa Controlador que actúa como director de tráfico en medio de Vistas y Modelos. En este tema, vamos a aprender sobre los controladores Laravel.

Lista de controladores Laravel

Aquí está la lista de controladores Laravel que se menciona a continuación

1. Controladores básicos

A continuación puede ver un ejemplo básico de la clase de controlador. Puede notar aquí que 'MyController' extiende 'Controlador'. Aquí 'Controlador' es la clase base. La clase base 'Controlador' proporciona métodos como 'middleware', 'despachar' y 'validar', lo que lo hace conveniente. Puede usar middleware para asignarlo a la ruta del controlador o en el constructor de su controlador.

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
class MyController extends Controller
(
/**
* Show profile
*
*/
public function show($id)
(
return view('user.profile', ('user' => User::foundOrLost($id)));
)
)

La ruta a MyController se puede definir así:

Route::get('user/(id)', ' ');

Asignación de middleware en archivos de ruta:

Route::get('profile', ' ')->middleware('auth');

Cuando el URI de ruta coincide con una solicitud específica, el método 'show' en la clase 'MyController' se ejecuta y los parámetros especificados en la ruta también se asignan al método.

Algunas cerezas extra para ti:

  • No es necesario mencionar el espacio de nombres completo para el controlador, ya que 'RouteServiceProvider' se carga automáticamente en el grupo de ruta que contiene el espacio de nombres, todos los archivos de ruta. Simplemente necesita especificar esa parte del nombre que aparecerá después de App \ Http \ Controllers.
  • Si desea definir el controlador de acción única, podrá hacerlo colocando un único método '__invoke' en su controlador.

2. Controladores de recursos

Al crear una aplicación, requerimos realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar). Con los controladores de recursos de Laravel, solo es necesario crear el controlador y puede dejar descansar en Laravel. La ruta de recursos Laravel asignará las rutas de operación CRUD al controlador que también con una sola línea de codificación. Se puede registrar una única ruta para todos los métodos en el archivo routes.php.

Tomemos un ejemplo, supongamos que para su aplicación, desea hacer un controlador que maneje todas las solicitudes HTTP entrantes en relación con las 'imágenes' almacenadas. Esto se hará rápidamente con la ayuda del comando Artisan. Veamos el comando Artisan 'make: controller' rápidamente para crear un controlador similar de la siguiente manera:

php artisan make:controller ImageController --resource

El comando anterior generará un controlador en la aplicación / Http / Controllers / ImageController.php. Este controlador consistirá en un método dedicado a cada operación de recursos disponible.

Ahora, puede declarar una ruta para manejar varias acciones como esta:

Route::resource('images', 'ImageController');

Esta declaración de ruta crea muchas rutas que pueden manejar numerosas acciones. Este controlador tendrá métodos específicos para cada acción disponible. También incluirá las notas que le informarán sobre los URI y los verbos HTTP que se están manejando.

Si desea registrar más de un controlador de recursos de una vez, puede hacerlo con la ayuda de una matriz como se muestra a continuación:

Route::resources((
'images' => 'ImageController',
'posts' => 'PostController'
));

Tabla de acciones

VerboURI / rutaEvento de acciónNombre de ruta
ENVIAR/ imágenesTiendaimages.store
OBTENER/ imágenesíndiceimages.index
OBTENER/ images / createcrearimages.create
OBTENER/ images / (image)espectáculoimages.show
PONER / PARCHEAR/ images / (image)actualizarimages.update
OBTENER/ images / (image) / editeditarimages.edit
ELIMINAR/ images / (image)destruirimages.destroy

3. Controladores implícitos

Con la ayuda de estos controladores, puede manejar cada acción simplemente definiendo una ruta. Primero debe definir la ruta utilizando Route :: controller de esta manera:

Route::controller('users', 'MyController');

Aquí, se pasan dos argumentos al controlador.

  1. URI base
  2. Nombre de clase del controlador

Ahora solo tiene que agregar métodos a 'MyController' con el verbo HTTP prefijado.

class MyController extends Controller (
public function getIndex()
(
//
)
public function anyLogin()
(
//
)
public function postProfile()
(
//
)
)

Los métodos 'index' responderán a 'users', que es el URI raíz / base manejado por Controller.

Se puede acceder a una acción con varias palabras utilizando 'guión' en URI. Consulte la acción del controlador a continuación como ejemplo:

public function getAdminProfile() ()

Esta acción del controlador en MyController responderá a los usuarios / perfil de administrador de URI.

4. Inyección de dependencia y controladores

Inyección de dependencias hace que sus aplicaciones web sean más fáciles de probar y mantener.

1. Inyección de constructor

Laravel gestiona las dependencias de clase y resuelve todos los controladores. Su controlador puede necesitar dependencias en el constructor, con Laravel, puede insinuar casi cualquiera de estas dependencias. El controlador de servicio Laravel resolverá todas las dependencias automáticamente y las inyectará en la instancia del controlador.

<_?php
namespace App\Http\Controllers;
use App\Repositories\UserRepository;
class MyController extends Controller
(
/**
* The user repository instance.
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
(
$this->users = $users;
)
)

2. Método de inyección

Además de inyectar dependencias en el constructor, también puede insinuarlas en los métodos de su controlador. Por ejemplo, la instancia Illuminate \ Http \ Request se puede inyectar en el método del controlador de la siguiente manera:

<_?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MyController extends Controller
(
/**
* Store a new user.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
(
$name = $request->name;
//
)
)

Características de los controladores Laravel

A continuación se presentan algunas características del controlador laravel:

  • Soporte MVC: Laravel está respaldado por MVC Architecture. Hace que el desarrollo sea rápido, ya que un usuario puede trabajar en la lógica mientras que el otro trabaja a la vista. Se admiten varias vistas para un modelo sin duplicación, ya que la lógica empresarial está separada de la lógica de presentación.
  • Autenticación: Laravel tiene un sistema incorporado para la autenticación, solo tiene que ocuparse de otros aspectos como la configuración de vistas, modelos y controladores.
  • Seguridad: la seguridad es el factor más importante a tener en cuenta en el desarrollo de una aplicación. Laravel proporciona seguridad por su seguridad de aplicación incorporada.
  • Artisan: Artisan ayuda a realizar tareas repetitivas sin que los desarrolladores las realicen manualmente. Estos se pueden utilizar para crear la estructura de la base de datos, el código, una migración para que sea manejable.
  • Plantillas: con el innovador y potente motor de plantillas de Laravel, los desarrolladores pueden crear aplicaciones web dinámicas.

Artículos recomendados

Esta es una guía para los controladores Laravel. Aquí discutimos un buen número de conceptos de controlador Laravel que le permitirán crear su propio controlador para su aplicación, que será seguro y potente al mismo tiempo. También puede consultar el siguiente artículo para obtener más información:

  1. ¿Qué es el marco de Laravel?
  2. Comandos Laravel
  3. ¿Qué es laravel?
  4. ¿Qué es el servlet?