moin community,
mich macht dieses Klassenkonstrukt stutzig.
class Autoloader {
private function __construct() {
spl_autoload_register( [ $this, 'load' ] );
}
public function register() : void {
new Autoloader;
}
private function load( string $name ) : void {
/* Code */
}
}
Autoloader::register();
was mir klar ist:
- Die Klasse
Autoloader
wird mit öffentlicher Methoderegister()
aufgerufen. - Die Methode
register()
instanziiert ihre eigene KlasseAutoloader
-Klasse (zu vergleichen mit Singleton nehme ich an)
Zur Frage:
spl_autoload_register()
benötigt jacallable
Funktions-Objkte. Was hat ein numerisches Array mit Funktionsobjekten zutun und warum Funktioniert das[ $this, 'load' ]
?- Warum muss eine anonyme Instanz erzeugt werden damit Autoload funktioniert, warum reicht die Klassenmethode
register()
als aufruf nicht?
Ich habe die Sinnhaftigkeit von diesen Konstrukten nicht ganz verstanden :/.
vlg MB