Bonjour à tous,
J'ai commencé à suivre la formation en POO de grafikart et je bloque sur un chapitre qui me semble essentiel pour avancer dans la POO, il s'agit de l'autoloading.
Premièrement la fonction __Autoload() :
function __autoload($class_name){
require('class/' . $class_name . '.php');
}
Si j'ai bien compris cette fonction, elle s'occupe de charger toutes les class présentes dans notre dossier "class/" pour qu'on n'ait plus à toutes les charger manuellement avec un require. C'est un peu une sorte de foreach donc?
Je pense que jusque là tout va bien mais c'est ensuite que ça se corce. Grafikart comme php.net nous dit bien de ne plus utiliser autoload
car on ne peut pas avoir plusieurs fois la même fonction et donc on ne peut pas créer plusieurs autoloader.
Pourriez vous me donner un cas concret ou cela pose problème car je ne comprends pas vraiment le problème..
Je ne comprends pas pourquoi on utilise la méthode autoload() dans le deuxième exemple. Car c'est une fonction que l'on crée et je ne vois pas ce que prend comme valeur la propriété "$class"..
On passe ensuite par spl_autoload_register() et je ne vois pas du tout ce que fait cette fonction non plus..
J'ai déjà été voir la doc sur php.net mais ça ne m'aide pas plus à comprendre..
class Autoloader{
/**
* Enregistre notre autoloader
*/
static function register(){
spl_autoload_register(array(__CLASS__, 'autoload'));
}
/**
* Inclue le fichier correspondant à notre classe
* @param $class string Le nom de la classe à charger
*/
static function autoload($class){
require 'class/' . $class . '.php';
}
}
Merci d'avance pour vos réponses :)