Je souhaite créer des fonctions Helpers pour éviter de répéter du code entre les vues dans Laravel. Par exemple :
view.custom.php
<p>Display text: {{ displayText($text) }}</p>
Il s’agit essentiellement de fonctions d’affichage de texte. Comment dois-je définir les fonctions Helpers disponibles globalement comme displayText() ?
Après avoir ajouté cela à votre fichier composer.json, exécutez la commande suivante :
$ composer dump-autoload
Si vous n’aimez pas garder votre fichier helpers.php dans votre répertoire app (parce que ce n’est pas un fichier de classe PSR-4 namespaced), vous pouvez faire ce que le site laravel.com fait : stocker le helpers.php dans le répertoire bootstrap. N’oubliez pas de le définir dans votre fichier composer.json :
Si vous utiliser Laravel 5 suivez les étapes suivantes:
Étape 1 : Créez votre fichier Helpers (ou autre classe personnalisée) et donnez-lui un namespace correspondant. Écrivez votre classe et votre méthode :
<?php // Code à l'intérieur de app\Helpers\Helper.php
namespace App\Helpers;
class Helper
{
public static function displayText(string $string)
{
return strtolower($string);
}
}
Étape 2 : Créez un alias :
<?php // Code à l'intérieur de config/app.php
'aliases' => [
...
'Helper' => App\Helpers\Helper::class,
...
Étape 3 : Exécuter composer dump-autoload dans la racine du projet
Étape 4 : Utilisez-le dans votre template Blade :
<!-- Code à l'intérieur de resources/views/template.blade.php -->
{!! Helper::displayText('autoloading...') !!}
Étape 5 : Utilisez cette classe n’importe où dans votre application Laravel :
<?php // Code à l'intérieur de app/Http/Controllers/MyController.php
namespace App\Http\Controllers;
use Helper;
class MyController extends Controller
{
public function __construct()
{
Helper::displayText('Classe Helper dans le contrôleur!!');
}
...