Documentation : Autoloader

Présentation

L'autoloader de Temma implémente une fonctionnalité du langage PHP, qui permet d'éviter d'avoir à inclure explicitement les fichiers (via les fonctions natives include(), require(), include_once() et require_once()). Ce mécanisme permet d'inclure les fichiers automatiquement au moment où un objet est instancié.

Cela simplifie l'écriture du code, en supprimant les listes d'inclusion interminables en début de fichiers, et évite d'avoir à inclure des fichiers même si on n'est pas certain d'en avoir besoin.

Ce fonctionnement est naturellement activé par le framework, qui l'utilise pour l'ensemble de son fonctionnement. Il ne peut pas être désactivé.

Fonctionnement

L'autoloader respecte la norme PSR-0, qui prévoit l'utilisation des espaces de noms, avec une arborescence de fichiers qui reproduit la nomenclature des namespaces.

Prenons un exemple. Imaginions que vous créiez une bibliothèque constituée de plusieurs objets. Vous pourriez les répartir suivant l'arborescence suivante :

lib/
    MyCompany/
              Data/
                   APIConnector
              Report/
                     GeneratorInterface
                     CSVGenerator
                     PDFGenerator
                    
						

Dans ce cas vous auriez les objets (et interface) suivants :

  • \MyCompany\Data\APIConnector
  • \MyCompany\Report\GeneratorInterface
  • \MyCompany\Report\CSVGenerator
  • \MyCompany\Report\PDFGenerator

À partir du moment où ces fichiers seront bien présents dans le répertoire lib/ de votre projet, vous pourrez utiliser directement ces objets en les instanciant ou en créant des objets qui en dérivent.