Charger automatiquement une bibliothèque de fonctions personnalisées sous Laravel

Lorsque vous créez une bibliothèque de fonctions personnalisées, Laravel vous offre différentes techniques pour rendre votre bibliothèque disponible dans votre code.

▼Publicité

Prenons le cas du fichier debogage.php placé dans le dossier app\fonctions. Il est possible de le rendre disponible pour un contrôleur à l'aide d'un include_once() placé au début de ce contrôleur.

Ex :

Contrôleur Laravel (PHP)

include_once(app_path() . '/fonctions/debogage.php');

...

public function ...

{

    ...

    ddd(Produit::count());

}

Par contre, il serait plus intéressant de le rendre automatiquement disponible pour tout le projet.

Le fichier composer.json vous permettra d'y arriver. Vous devez pour cela ajouter une référence à votre fichier dans la section autoload.

Ex :

composer.json

{

    "name": "laravel/laravel",

    ...

    "autoload": {

        "classmap": [

            "database"

        ],

        "psr-4": {

            "App\": "app/"

        },

        "files": [

            "app/fonctions/debogage.php"

        ]

    },

    ...

}

Réinitialiser les fichiers à charger automatiquement

Vous devez maintenant demander à composer de réinitialiser la liste des fichiers à charger automatiquement :

Console Vagrant SSH

composer dump-autoload

Bibliothèque de classes

Dans le cas où vous développez une bibliothèque personnelles contenant des classes, vous pouvez choisir de charger automatiquement toutes les classes appartenant à un espace de nom (namespace).

Ex :

Bibliothèque personnelle (PHP)

namespace AppMaBibliotheque;

...

class ...

{

    ...

}

L'instruction suivante chargera automatiquement toutes les classes qui correspondent à cet espace de nom.

Ex :

composer.json

{

    "name": "laravel/laravel",

    ...

    "autoload": {

        "classmap": [

            "database",

            "app/MaBibliotheque"

        ],

        "psr-4": {

            "App\": "app/"

        }

    },

    ...

}

Vous devrez ici aussi effectuer un composer dump-autoload.

Une fois ces étapes complétées, vous pourrez utiliser votre bibliothèque de fonctions dans tout votre projet.

Pour plus d'information

« How to use external classes and PHP files in Laravel Controller? ». Laravel Daily. http://laraveldaily.com/how-to-use-external-classes-and-php-files-in-laravel-controller/

«  Composer's autoload-dev ». Hannes Van De Vreken. https://hannesvdvreken.com/2015/01/28/autoload-dev/

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories