Introduction aux contrôleurs Laravel

Toute votre application peut être créée en utilisant simplement Closures dans le fichier routes.php, cela deviendrait désordonné mais serait faisable. Et si vous pouviez éventuellement organiser l'ensemble de votre processus à l'aide des classes Controller? Voyons comment. Les contrôleurs sont capables du groupe au sein d'une classe, toutes les logiques associées de traitement des demandes. L'annuaire app / Http / Controllers est chargé de stocker les contrôleurs. Dans le cadre MVC, «C» signifie Controller qui agit comme dirigeant le trafic parmi les vues et les modèles. Dans cette rubrique, nous allons découvrir les contrôleurs Laravel.

Liste des contrôleurs Laravel

Voici la liste des contrôleurs Laravel mentionnée ci-dessous

1. Contrôleurs de base

Ci-dessous, vous pouvez voir un exemple de base de la classe de contrôleur. Vous pouvez remarquer ici que «MyController» étend «Controller». Ici, «Controller» est la classe de base. La classe de base 'Controller' fournit des méthodes telles que les méthodes 'middleware', 'dispatch' et 'validate', ce qui la rend pratique. Vous pouvez utiliser un middleware pour l'affecter à la route du contrôleur ou dans le constructeur de votre contrôleur.

<_?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)));
)
)

L'itinéraire vers MyController peut être défini comme suit:

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

Affectation de middleware dans les fichiers de route:

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

Lorsque l'URI de route correspond à une demande spécifique, la méthode 'show' sur la classe 'MyController' est exécutée et les paramètres spécifiés dans route sont également affectés à la méthode.

Quelques cerises supplémentaires pour vous:

  • Il n'est pas nécessaire de mentionner l'espace de noms complet pour le contrôleur car «RouteServiceProvider» se charge automatiquement dans le groupe de routes qui contient un espace de noms, tous les fichiers de route. Vous devez simplement spécifier la partie du nom qui apparaîtra après App \ Http \ Controllers.
  • Si vous souhaitez définir le contrôleur à action unique, vous pourrez le faire en plaçant une seule méthode «__invoke» sur votre contrôleur.

2. Contrôleurs de ressources

Lors de la création d'une application, nous devons effectuer des opérations CRUD (Créer, Lire, Mettre à jour, Supprimer). Avec les contrôleurs de ressources Laravel, il suffit de créer le contrôleur et vous pouvez laisser le reste sur Laravel. La route de ressource Laravel attribuera les routes d'opération CRUD au contrôleur aussi juste avec une ligne de codage. Une seule route peut être enregistrée pour toutes les méthodes dans le fichier routes.php.

Prenons un exemple, supposons que pour votre application, vous souhaitez créer un contrôleur qui gère toutes les requêtes HTTP entrantes relatives aux «images» stockées. Cela se fera rapidement avec l'aide de la commande Artisan. Examinons rapidement la commande Artisan 'make: controller' afin de créer un contrôleur similaire comme suit:

php artisan make:controller ImageController --resource

Un contrôleur sera généré dans app / Http / Controllers / ImageController.php par la commande ci-dessus. Ce contrôleur consistera en une méthode dédiée à chaque opération de ressource disponible.

Maintenant, vous pouvez déclarer un itinéraire pour gérer diverses actions comme celle-ci:

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

Cette déclaration de route crée elle-même de nombreuses routes pouvant gérer de nombreuses actions. Ce contrôleur va avoir des méthodes spécifiques pour chaque action disponible. Il comprendra également les notes qui vous informeront sur les URI et les verbes HTTP qui sont traités.

Si vous souhaitez enregistrer plusieurs contrôleurs de ressources en une seule fois, vous pouvez le faire à l'aide d'un tableau comme indiqué ci-dessous:

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

Tableau des actions

VerbeURI / CheminÉvénement d'actionNom de l'itinéraire
PUBLIER/imagesboutiqueimages.store
AVOIR/imagesindiceimages.index
AVOIR/ images / créercréerimages.create
AVOIR/ images / (image)spectacleimages.show
PUT / PATCH/ images / (image)mise à jourimages.update
AVOIR/ images / (image) / modifierÉditerimages.edit
SUPPRIMER/ images / (image)détruireimages.destroy

3. Contrôleurs implicites

Avec l'aide de ces contrôleurs, vous pouvez gérer chaque action simplement en définissant un itinéraire. Vous devez d'abord définir l'itinéraire en utilisant Route :: controller comme ceci:

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

Ici, deux arguments sont passés au contrôleur.

  1. URI de base
  2. Nom de classe du contrôleur

Il ne vous reste plus qu'à ajouter des méthodes à 'MyController' avec le verbe HTTP qui leur est préfixé.

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

L'index des méthodes répondra aux «utilisateurs», qui est l'URI racine / base gérée par le contrôleur.

Une action avec plusieurs mots est accessible en utilisant 'tiret' dans l'URI. Reportez-vous à l'action du contrôleur ci-dessous à titre d'exemple:

public function getAdminProfile() ()

Cette action de contrôleur dans MyController répondra à l'URI 'users / admin-profile'.

4. Injection de dépendance et contrôleurs

L'injection de dépendances facilite le test et la maintenance de vos applications Web.

1. Injection de constructeur

Laravel gère les dépendances de classe et résout tous les contrôleurs. Votre contrôleur peut avoir besoin de dépendances dans le constructeur, avec Laravel, vous pouvez taper presque n'importe laquelle de ces dépendances. Le contrôleur de service Laravel résoudra automatiquement toutes les dépendances et les injectera dans l'instance du contrôleur.

<_?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éthode d'injection

En plus d'injecter des dépendances dans le constructeur, vous pouvez également les taper dans les méthodes de votre contrôleur. Par exemple, l'instance Illuminate \ Http \ Request peut être injectée dans la méthode du contrôleur comme suit:

<_?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;
//
)
)

Caractéristiques des contrôleurs Laravel

Voici quelques fonctionnalités du contrôleur laravel:

  • Prise en charge MVC: Laravel est soutenu par MVC Architecture. Cela rend le développement rapide car un utilisateur peut travailler sur la logique tandis que l'autre travaille sur la vue. Plusieurs vues sont prises en charge pour un modèle sans duplication car la logique métier est séparée de la logique de présentation.
  • Authentification: Laravel dispose d'un système d'authentification intégré, vous n'avez qu'à prendre en charge d'autres aspects comme la configuration des vues, des modèles et des contrôleurs.
  • Sécurité: La sécurité est le facteur le plus important à considérer dans le développement d'une application. Laravel assure la sécurité par la sécurité de ses applications intégrées.
  • Artisan: Artisan aide à effectuer des tâches répétitives sans les faire exécuter manuellement par les développeurs. Ceux-ci peuvent être utilisés pour créer la structure de la base de données, le code, une migration afin de la rendre gérable.
  • Modèles: avec le moteur de modèles innovant et puissant de Laravel, les développeurs peuvent créer des applications Web dynamiques.

Articles recommandés

Ceci est un guide des contrôleurs Laravel. Nous discutons ici d'un bon nombre de concepts de contrôleurs Laravel qui vous permettront de créer votre propre contrôleur pour votre application, qui sera à la fois sécurisé et puissant. Vous pouvez également consulter l'article suivant pour en savoir plus -

  1. Qu'est-ce que Laravel Framework?
  2. Commandes Laravel
  3. Qu'est-ce que Laravel?
  4. Qu'est-ce que Servlet?