Formation PUB030 : Laravel, 2019 Les bibliothèques de fonctions personnalisées

Charger automatiquement une bibliothèque de fonctions personnalisées


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.

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"

        ]

    },

    ...

}

▼Publicité

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 -o

Les fichiers et dossiers mis à jour par cette commande sont :

  • /vendor/autoload.php
  • /vendor/composer/

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 App\MaBibliotheque;

...

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/

Dernière révision le 11 février 2018
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre