Laravel : Créer un helper

Mis à jour il y a 3 ans

Un tutoriel pour créer et importer vos propres helpers (fonctions PHP) dans un projet Laravel.

Wilo Ahadi

Auteur

Wilo A.

Technologies

Laravel, PHP
Voir aussi Un tutoriel pour comprendre et créer (mettre en place) un flux RSS dans un projet Laravel En savoir plus

Qu’est-ce qu'un helper dans Laravel ?

Un helper est une fonction PHP globale qu’on peut appeler n’importe où dans une application Laravel pour effectuer certaines opérations tels que :

  • Générer le chemin d’un répertoire : app_path(), public_path(), …
  • Générer une URL : route(), asset(), …
  • Récupérer une information de configuration : config(), …
  • ...

Laravel propose des nombreux helpers pour travailler avec les tableaux et les objets, les chaînes de caractères, les requêtes et les réponses HTTP, …

Mais si les helpers Laravel ne répondent pas exactement à vos attentes, nous vous présentons dans ce guide deux étapes pour créer les vôtres.

Etape 1 : Créer un fichier d’helpers

Pour bien organiser le projet, créons un sous-dossier helpers dans /resources où nous allons placer tous les fichiers qui contiennent nos propres fonctions. Appelons ces fichiers « fichiers d’helpers ».

Pour ma part, je crée un fichier user_helpers.php où j'insère la fonction getUserByEmail() qui me permet de récupérer un utilisateur App\Models\User à partir de son adresse email.

Le code source du fichier /resources/helpers/user_helpers.php :

<?php

use App\Models\User;

// On vérifie si la fonction n'existe pas déjà avant de la créer
if (!function_exists("getUserByEmail")) {
	// On crée l'helper de récupération d'un User à partir d'une adresse email
	function getUserByEmail ($email) {
		$user =  User::where("email", $email)->first();
		if ($user) { return $user; } else { return false; }
	}
}

?>

Etape 2 : Charger le fichier d’helpers

Pour accéder aux helpers dans l'application, il faut charger les fichiers d'helpers. Pour ce faire, nous pouvons utiliser l'une de ces 2 méthodes :

1. Via composer

Au fichier composer.json à la racine du projet, renseigner le chemin du fichier d’helpers au tableau files dans la propriété autoload :

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    },
    "files" : [ "resources/helpers/user_helpers.php" ]
},

Puis exécuter la commande composer suivante pour charger automatiquement le fichier d'helpers :

composer dump-autoload

2. Via le service provider

Dans la méthode boot() au fichier app/Providers/AppServiceProvider, inclure le fichier d’helpers :

public function boot()
{
    // Importation du fichier resources/helpers/user_helpers.php
    require_once resource_path("helpers/text_helpers.php");
}

Utiliser ses propres helpers

Maintenant que le fichier d’helpers est chargé dans l'application, nous pouvons appeler les fonctions qui y sont définies :

// Fichier routes/web.php
Route::get('/', function () {

    // Récupération de l'utilisateur par son email
    $user = getUserByEMail("[email protected]");

    if ($user) {	
    	return view('welcome', compact("user"));    	
    } else { abort(404); }

});

Libre à vous maintenant de gérer vos propres fonctions 😉

Cette publication vous a plu ?
Partagez-la avec vos ami(e)s sur les réseaux sociaux.

Wilo Ahadi

Wilo Ahadi, l'auteur

Passionné de l'informatique, je suis spécialiste en techniques des systèmes et réseaux, développeur web et mobile, infographiste et designer, ... J'aime partager mon expérience en formant sur la plateforme Akili School

Voir profil

Commentaires