Un tutoriel pour créer et importer vos propres helpers (fonctions PHP) dans un projet 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 :
app_path()
, public_path()
, …route()
, asset()
, …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.
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; }
}
}
?>
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 :
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
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");
}
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, 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