Vous êtes sur la page 1sur 24

Année de formation :2022/2023

Direction Régionale Rabat – Salé - Kénitra

Développer en back-end

Les contrôleurs

Réalisé par M. Hamid Belyazidi


Développer en back-end

Introduction
A. Découvrir le Framework PHP Laravel
1. Découvrir les notions fondamentales des Frameworks PHP
2. Préparer l’environnement de Laravel

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
2. Maîtriser le Framework Laravel

C. Approfondir la programmation Laravel


1. Gérer la sécurité
2. Interagir avec la base de données
3. Manipuler l’ORM Eloquent
4. Prendre en charge les tests
D. Administrer un site à l’aide d’un CMS
1. Manipuler les éléments essentiels d’un CMS
2. Personnaliser graphiquement un site à l’aide d’un CMS
3. Manipuler les outils avancés d’un CMS
Conclusion
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
 Gestion du routage
 Utilisation des Middleware (définition, enregistrement, paramétrage,
terminate)
 Protection CSRF
 Manipulation des contrôleurs
 Manipulation des requêtes http
 Manipulation des réponses http
 Manipulation des vues
 Création des template Blade
 Génération d’URL
 Manipulation des sessions HTTP
 Validation des données d’entrée
 Gestion des erreurs
 Journalisation (logging)
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
 Définition
– Un contrôleur est une classe qui étend la classe de base Controller et
dont chaque méthode publique représente généralement une action qui
correspond à une route.
– Un contrôleur est une classe qui va contenir différentes méthodes.
Chaque méthode correspondant généralement à une opération (URL)
de votre application.
.
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
 Rôle d’un contrôleur
 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.
 La tâche d’un contrôleur est de réceptionner une requête (qui a déjà été
sélectionnée par une route) et de définir la réponse appropriée et la
fournir au client.
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
 Rôle d’un contrôleur
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
 Créer un contrôleur
La façon la plus simple de créer un contrôleur est d’utiliser Artisan.
Appeler la commande make:controller a pour effet de créer une structure de
base de contrôleur dans le dossier réservé à cet usage : app/Http/Controller.

php artisan make:controller NomContrôleur

• Cette commande placera une nouvelle classe NomContrôleur dans le


répertoire app/Http/Controller.
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
 Liaison avec les routes

use App\Http\Controllers\NomContrôleur;
Route::get('/’, [NomContrôleur::class, ‘nomMéthode']);

 On voit qu’au niveau de la route il suffit de désigner le contrôleur et la


méthode dans un tableau.
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
 Route nommée
De la même manière que nous pouvons nommer une route classique on
peut aussi donner un nom à une route qui pointe une méthode de
contrôleur :

use App\Http\Controllers\NomContrôleur;
Route::get('/’, [NomContrôleur::class, ‘nomMéthode']) ->name('home');

– Si on utilise Artisan pour lister les routes : php artisan route:list


– On voit bien que l’action est faite par le contrôleur avec précision de la
méthode à utiliser. On trouve aussi le nom de la route.
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
 Créer une méthode de contrôleur Laravel
• Un contrôleur laravel peut contenir différentes méthodes. Chaque méthode
peut avoir l’ argument $request comme paramètre de fonction par défaut. Il
s’agit essentiellement d’un objet de requête contenant vos variables de
formulaire, vos données de session ou vos informations de cookie.
• Une méthode de contrôleur peut répondre via différents types de réponse,
certains d’entre eux sont mentionnés ci-dessous:

Texte brut
Json Array
Vue HTML ou blade
XML
Téléchargement de fichier
Sortie PDF ou image sur navigateur directement etc …
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
1. Les contrôleurs d’écriture
2. Intergiciel(Middleware) du contrôleur
3. Contrôleurs de ressources
4. Injection de dépendance et contrôleurs
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
1. Les contrôleurs d’écriture
Contrôleurs de base
Contrôleurs à simple action
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
1. Les contrôleurs d’écriture(Contrôleurs de base)
Ce contrôleur étend la classe de contrôleur de base incluse dans Laravel. La classe de
base fournit quelques méthodes pratiques telles que la propriété $middleware.
Nous pouvons essayer de lui faire retourner une chaîne de caractères en créant une
fonction dans la classe :

class NomContrôleur extends Controller


{
public function nomMéthode(){
return "C’est mon contrôleur NomContrôleur ";
}
}
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
1. Les contrôleurs d’écriture(Contrôleurs de base)
Nous avons créé une méthode appelée nomMéthode()et dans cette méthode, nous
retournons une chaîne de caractères “C’est mon contrôleur NomContrôleur“.
Afin de tester notre code, nous devons faire en sorte qu’un routeur renvoie le
“NomContrôleur“. Retournez à web.php et créez un nouveau routeur comme ceci :

use App\Http\Controllers\NomContrôleur;
Route::get('/', [NomContrôleur::class, 'nomMéthode']);
le deuxième argument n’est plus une fonction, c’est [NomContrôleur ::class,
‘nomMéthode'] ce qui signifie qu’il faut aller à l’adresse NomContrôleur trouver le
nomMéthode() et exécute ce qu’elle contient.
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
1. Les contrôleurs d’écriture(Contrôleurs de base)
Nous pouvons également faire en sorte que le NomContrôleur pour retourner une vue.

class NomContrôleur extends Controller


{
public function nomMethode(){
return view('welcome');
}
}
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
1. Les contrôleurs d’écriture(Contrôleurs à action unique )
Les contrôleurs à action unique sont utiles lorsque nous n’avons besoin que d’une seule
méthode dans la classe du contrôleur :.
php artisan make:controller NomContrôleur --invokable
php artisan make:controller NomContrôleur -i

class NomContrôleur extends Controller


{
public function __invoke(){
return view('welcome');
}
}
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
1. Les contrôleurs d’écriture(Contrôleurs à action unique )
Maintenant, nous pouvons modifier la route que nous venons de définir. Nous n’avons
plus besoin de spécifier la méthode.

use App\Http\Controllers\NomContrôleur;
Route::get('/', NomContrôleur::class);
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
2. Intergiciel du contrôleur
Un middleware peut être affecté aux routes du contrôleur dans vos
fichiers de routes :

Route::get('/', [NomContrôleur::class, 'nomMéthode’])


->middleware(‘NomMiddleware');
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
2. Intergiciel du contrôleur
Ou, vous trouverez peut-être pratique de spécifier un middleware dans le constructeur
de votre contrôleur. En utilisant la middleware méthode dans le constructeur de votre
contrôleur, vous pouvez affecter un middleware aux actions du contrôleur :

class NomContrôleur extends Controller


{
public function __construct (){
$this ->middleware('auth');
$this ->middleware('log')->only('index');
$this ->middleware('subscribed')->except('store’);
}
}
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
2. Intergiciel du contrôleur
Les contrôleurs vous permettent également d'enregistrer un middleware à
l'aide d'une fermeture. Cela fournit un moyen pratique de définir un
middleware en ligne pour un seul contrôleur sans définir une classe complète
de middleware :

$this ->middleware(function ($request, $next) {


return $next($request);
});
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
3. Contrôleurs de ressources
Laravel attribue les routes typiques de création, lecture, mise à jour et suppression
("CRUD") à un contrôleur avec une seule ligne de code. Pour commencer, nous
pouvons utiliser l' option de make:controller la commande Artisan –resource pour
créer rapidement un contrôleur pour gérer ces actions
php artisan make:controller NomContrôleur --resource
php artisan make:controller NomContrôleur -r
Cette commande générera un contrôleur à app/Http/Controllers/NomContrôleur.php.
Le contrôleur contiendra une méthode pour chacune des opérations de ressources
disponibles. Ensuite, vous pouvez enregistrer une route de ressources qui pointe vers
le contrôleur :
Route::resource(‘NomResource’, NomContrôleur::class);
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
3. Contrôleurs de ressources
Vous pouvez même enregistrer plusieurs contrôleurs de
ressources à la fois en passant un tableau à la Resource
méthode :

Route::resource([
‘NomResource1’=> NomContrôleur1::class,
‘NomResource2’=> NomContrôleur2::class,
]);
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
3. Contrôleurs de ressources
Vous pouvez même enregistrer plusieurs contrôleurs de
ressources à la fois en passant un tableau à la Resource
méthode :

Route::resource([
‘NomResource1’=> NomContrôleur1::class,
‘NomResource2’=> NomContrôleur2::class,
]);
Développer en back-end

B. Programmer avec Laravel


1. Connaître les fondements du modèle MVC Laravel
Manipulation des contrôleurs
3. Contrôleurs de ressources
Actions gérées par le contrôleur de ressources
Verbe URI Action Nom de l'itinéraire

GET /stagiaires index stagiaires.index

GET /stagiaires/create create stagiaires.create

POST /stagiaires store stagiaires.store

GET /stagiaires/{id} show stagiaires.show

GET /stagiaires/{id}/edit edit stagiaires.edit

PUT/PATCH /stagiaires/{id} update stagiaires.update

DELETE /stagiaires/{id} destroy stagiaires.destroy

Vous aimerez peut-être aussi