Si par erreur (ou justement pas) vous vous mettez un jour à coder proprement en PHP, vous vous rendrez vite compte qu’avoir ces petites classes toute faite pour interroger une base de donnée ou parcer un fichier XML peut s’avérer très pratique. Une fois ces classes écrites une bonne fois pour toute, avec la gestion d’erreur qui va bien et tout et tout, il ne reste plus qu’a copier/coller celle dont on a besoin dans un dossier « Class » du projet en cours et on les appellera au besoin sur les pages concernées.
Mais voilà, trêve de plaisanteries, trois tonnes d’include en haut d’un fichier PHP ça va vite devenir très cochon et pas franchement lisible.
Nous allons voir ici comment utiliser la fonction __autoload() de PHP pour inclure automatiquement les fichiers contenant les classes que nous allons appeler.
Commençons par organiser un peux notre projet.
Créez un dossier à la racine du site qui va contenir toute les librairies de notre projet et créez dans celui ci un dossier « class » qui lui contiendra les classes de notre application.

Créez maintenant un fichier nommé « Loader.php » à la racine du dossier « library » dans lequel nous allons placer le code suivant:
<?php
function __autoload($class_name) {
require_once ‘library/class/’ . $class_name . ‘.php’;
}
?>
On peut maintenant appeler ce fichier dans notre script d’origine, par exemple ici notre index.php
<?php
require_once(‘library/Loader.php’);
Ainsi une instanciassions de classe du type:
$sql_access = new db_access();
va automatiquement inclure le fichier « library/class/db_access.php » contenant la classe « db_access » et nous nous retrouvons directement avec une organisation du projet sous cette forme:

Bienvenu dans le monde des projets bien organisés!
`__autoload` est un palliatif pour PHP4 à éviter, une fois défini c’est foutu. Donc pas possible d’utiliser plusieurs autoloaders.
En PHP5 y’a SPL avec `spl_autoload_register`.
C’est beaucoup plus pratique, flexible et recommandé
Je ne connaissais pas
je regarderai
Merci pour l’info Oncle Tom!
Pourquoi pas avoir un fichier exemple nomé ‘webzone.php’ inclus en haut de toutes nos pages.
Ce fichier contiendra lui même tous les includes nécessaires (include des classes, des fichiers fonctions etc etc).
Puis à partir de n’importe quel fichier incluant ce ‘webzone.php’ on peux instantialiser nos objects (puisque leurs fichiers de classes sont inclus) avec genre: $table_client = new Table_clients()… etc
Bref sur des gros projets on peux se retrouver avec des dizaines de fichiers classes/fonctions…
Pis pour aller plus loin a vrai dire le fichier ‘webzone.php’ peut inclure lui même un autre fichier incluant d’autres classes. Dans mon cas ce fichier inclus un fichier nommé (db.php) dont ce dernier inclus toute les classes et fonctions utilisées pour acceder à la database (une table = une classe + 2 ou 3 fichiers de fonctions dont héritent toute les autres classes).
Un autre point fait penser à avoir une variable tout en haut (exemple: $path_pages) qui prendra le chemin relatif à partir du fichier ou on réalise les include.
D’un point de vu purement fonctionnel ça marche, seulement la solution que tu propose est loin d’être propre.
Tu va à chaque chargement de page inclure des fichiers que tu n’utilisera pas forcement et instancier des classes que tu n’utilisera pas.
Par exemple si tu n’utilise pas ton $table_client ton instance sera quand même créée et prendra de l’espace mémoire coté serveur, de l’utilisation coté base de donnée… etc…
La solution que tu propose n’a rien a voir avec ce dont je parle dans mon article et je pense qu’elle aura vite ces limites.