Autoloading en PHP

Qui n’a jamais fait d’include de fichiers externes en PHP? C’est même récurrent pour les programmeurs.

Avouez que c’est quand même lourd à la longue. Il existe une méthode depuis PHP 5.3 pour résoudre automatique le chemin des fichiers de classe, enfin presque. A condition de bien comprendre quelques notions fondamentales en PHP objet.

 

Autoloading qu’est ce que c’est?

Quand vous avez à instancier un objet:

myDeuche = new Voiture();

PHP doit trouver le chemin du fichier qui contient la déclaration de classe et le charger (Autoloading). Prenons soins de nommer le fichier de déclaration de classe avec le même nom que la classe. Et dans un fichier il y a une seule classe. Ces deux conditions sont nécessaires pour faire marcher l’autoloading.

 

Votre fichier peut être dans le même répertoire que celui contenant le script ci-dessus.

Ou il peut être dans un sous répertoire ou sous sous répertoire.

Comment lui faire savoir dans ce cas?

C’est là qu’interviennent les espaces de nom.

soit la déclaration suit:

Voiture.php

namespace vehicule;

class Voiture{

 //….suite du code

}

 

Ce fichier est obligatoirement dans le répertoire vehicule.

Ainsi lorsqu’on instancie l’objet Deuche, PHP va aller dans le répertoire vehicule pour chercher le fichier Voiture.php grâce à la corresponce du nom de classe (vous comprenez pourquoi on ne doit déclarer qu’une seule classe par fichier)

Retour en haut