DY

04 Composer et autoloading

Vous aurez remarqué que depuis le TP 1 nous utilisons le fichier autoload.php pour charger les librairies installées via composer.

Et si je souhaite charger automatiquement mes propres fichiers ?

composer.json

Nous l'avons déjà vue, ce fichier permet de lister les dépendances dont notre projet à besoin mais nous pouvons également y ajouter nos propres fichiers.

Architecture de projet

Il convient pour ce faire d'adopter l'architecture suivante:

-- src/
-- vendor/
-- composer.json
-- composer.lock
-- index.php

Si nous ajoutons un fichier functions.php dans notre dossier src, il suffit de modifier le fichier composer.json comme ceci pour ajouter notre fichier de fonctions à l'autoloader:

{
    "require": {
        "mikecao/flight": "^1.3",
    },
    "autoload": {
        "files": [
            "src/functions.php",
            "src/utils.php"
        ]
    }
}

Via l'objet autoload et sa propriété files nous indiquons à composer de charger les fichiers lister. Ainsi functions.php et utils.php seront chargés automatiquement.

Attention il convient d'appeller la commande composer dump-autoload après chaque modification du fichier composer.json.

Vous savez désormais charger automatiquement vos fichiers via composer, ainsi seul le require de l'autoloader de composer sera requis. En clair vous n'aurez plus besoin de charger un à un vos fichiers PHP !