03.08.2019, 00:10
Nabend,
sollte ich eigentlich selbst herausfinden können, schmeiße aber die Überlegung mal in den Raum:
Es geht um die vordefinierte ::class Klassenkonstante.
Wenn ich sie benutze, versucht php dann die Klasse zu laden, oder wird der Klassenname geparsed ohne die Klasse autozuloaden?
Hintergrund: Ich habe eine spl_autoload_register function welche php klassen code per remote lädt.
Es wäre ein ziemlicher overhead wenn die Klasse geladen wird wenn ich nur den Klassennamen als string (für lazy loading) brauche.
Beispiel:
vs.
sollte ich eigentlich selbst herausfinden können, schmeiße aber die Überlegung mal in den Raum:
Es geht um die vordefinierte ::class Klassenkonstante.
Wenn ich sie benutze, versucht php dann die Klasse zu laden, oder wird der Klassenname geparsed ohne die Klasse autozuloaden?
Hintergrund: Ich habe eine spl_autoload_register function welche php klassen code per remote lädt.
Es wäre ein ziemlicher overhead wenn die Klasse geladen wird wenn ich nur den Klassennamen als string (für lazy loading) brauche.
Beispiel:
PHP-Code:
$this->getContainer()->set(\Webfan\App\Rpc\Procedure\install_requirements::class, function(\Psr\Container\ContainerInterface $c) {
return new \Webfan\App\Rpc\Procedure\install_requirements($c->get('webfan.app.rpc.auth-shield'), $c);
});
$this->getContainer()->get('webfan.app.rpc.server')
->set('install.requirements', \Webfan\App\Rpc\Procedure\install_requirements::class)
;
vs.
PHP-Code:
$this->getContainer()->set('\Webfan\App\Rpc\Procedure\install_requirements', function(\Psr\Container\ContainerInterface $c) {
return new \Webfan\App\Rpc\Procedure\install_requirements($c->get('webfan.app.rpc.auth-shield'), $c);
});
$this->getContainer()->get('webfan.app.rpc.server')
->set('install.requirements', '\Webfan\App\Rpc\Procedure\install_requirements')
;