0% ont trouvé ce document utile (0 vote)
2 vues13 pages

05 Controllers

Le document présente la manipulation des contrôleurs dans le cadre du développement back-end avec Laravel, en expliquant leur rôle dans le modèle MVC et leur structure. Il décrit comment créer des contrôleurs, les lier aux routes, et introduit les contrôleurs de ressources pour gérer les opérations CRUD. Enfin, il fournit des exemples de syntaxe pour créer des contrôleurs et les routes associées.

Transféré par

hamzaiddou2004
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues13 pages

05 Controllers

Le document présente la manipulation des contrôleurs dans le cadre du développement back-end avec Laravel, en expliquant leur rôle dans le modèle MVC et leur structure. Il décrit comment créer des contrôleurs, les lier aux routes, et introduit les contrôleurs de ressources pour gérer les opérations CRUD. Enfin, il fournit des exemples de syntaxe pour créer des contrôleurs et les routes associées.

Transféré par

hamzaiddou2004
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module M205: Développer en back-end

Manipulation des contrôleurs


Filière: Développement digital – option web full stack

Formateur: Othmane DAIF


Qu'est-ce qu'un contrôleur ?
Dans le modèle MVC (modèle-vue-contrôleur), le contrôleur contient la logique concernant les actions effectuées par
l'utilisateur.

Permet de libérer les routes du code qu'elles contiennent dans leurs fonctions de rappel.

Les contrôleurs sont destinés à regrouper la logique de traitement des demandes associée dans une seule classe.

Dans votre projet Laravel, ils sont stockés dans le répertoire app/Http/Controllers

2
Rôle d'un contrôleur
La tâche d'un contrôleur est de recevoir une requête (qui a déjà été sélectionnée par une route) et de définir la réponse
appropriée, rien de moins et rien de plus. Voici une illustration du processus :

Requête Requête
routes contrôleur

Réponse

3
Créer un contrôleur sous Laravel
Pour créer un contrôleur à partir de la fenêtre du terminal, ouvrez le terminal et changez le répertoire vers votre dossier racine
Laravel. Une fois que vous y êtes, vous pouvez exécuter l'une des commandes suivantes pour créer un contrôleur.

Créer un simple contrôleur vierge


Pour créer un contrôleur vous pouvez directement entrer la commande :

php artisan make:controller NomDeMonController

Exemple:

php artisan make:controller UserController

app
Console
Exceptions
Http
Controllers
[Link]
[Link]
4
Structure d'un contrôleur
Dans l'exemple précédent nous avons créer le controller UserController.
Le contrôleur créée est sous le dossier app/Http/Controllers
Ajoutons la méthode index au controlleur UserController :

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller


{
//
public function index() {
return view("welcome");
}
}

5
Appel depuis la route
Maintenant nous devons faire le lien entre notre fichier [Link] et notre Controller.

Nous devons donc changer notre deuxième paramètre :

Route::get('/', [UserController::class, 'index']);

6
Utilisation des paramètres
Ajoutons à notre contrôleur la méthode get prenant en argument un paramètre $id:

class UserController extends Controller


{
public function get($id) {
return "page $id";
}
}

Ajoutons dans le fichier [Link] la route suivante:

Route::get('/get/{id}', [UserController::class, 'get']);

7
Contrôleurs à simple action
Si une action de contrôleur est particulièrement complexe, vous trouverez peut-être pratique de dédier une classe de contrôleur
entière à cette action unique. Pour ce faire, vous pouvez définir une seule méthode magique __invoke dans le contrôleur;

php artisan make:controller HomeController --invokable

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class HomeController extends Controller


{
/**
* Handle the incoming request.
*/
public function __invoke(Request $request)
{
return "Bienvenue à la page home";
}
}
8
Route pour contrôleur invocable
Pour appeler ce type de contrôleur via la route, il suffit d'indiquer la classe du contrôleur sans évoquer une méthode
spécifique:

Route::get('/home', HomeController::class);

9
Contrôleur de ressources
1 Les contrôleurs de ressources Laravel fournissent les routes CRUD au contrôleur en une seule ligne de code.

Un contrôleur de ressources est utilisé pour créer un contrôleur qui gère toutes les requêtes http stockées par votre application
2
(get, post, update, delete …).

Pour commencer, nous pouvons utiliser l'option make:controller de la commande Artisan --resource pour créer rapidement un
3
contrôleur pour gérer ces actions :

php artisan make:controller PostController --resource

Cette commande générera un contrôleur sous app/Http/Controllers/[Link]. Le contrôleur contiendra une méthode
pour chacune des opérations de ressources disponibles.

10
Méthodes d'un contrôleur de ressources
La classe PostController créée a l'allure suivante:

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class PostController extends Controller { /** Show form for editing */


public function edit($id) {
/** Display a listing */ // }
public function index() { // }
/** Update resource */
/** Show form for new */ public function update(Request $request, $id) { // }
public function create() { // }
/** Remove resource */
/** Store new resource */ public function destroy($id) { // }
public function store(Request $request) { // } }

/** Display resource */


public function show($id) { // }

11
Routes CRUD générées automatiquement
La méthode resource() de la classe Route est une fonction statique comme la méthode get() qui donne accès aux différentes routes que
nous pouvons utiliser dans un contrôleur.

Syntaxe de la méthode resource() :

Route::resource("/posts", PostController::class);

12
Table des routes CRUD
En excécutant la commande ci-après, on obtient:

php artisan route:list --except-vendor

Méthode
Méthode URI URI Nom Nom Action Action

GET|HEAD posts [Link] PostController@index

POST posts [Link] PostController@store

GET|HEAD posts/create [Link] PostController@create

GET|HEAD posts/{post} [Link] PostController@show

PUT|PATCH posts/{post} [Link] PostController@update

DELETE posts/{post} [Link] PostController@destroy

GET|HEAD posts/{post}/edit [Link] PostController@edit

13

Vous aimerez peut-être aussi