Je cherche le get_called_class()
équivalent pour __FILE__
... Peut-être quelque chose comme get_included_file()
?
J'ai un ensemble de classes qui aimeraient savoir dans quel répertoire elles existent. Quelque chose comme ceci :
<?php
class A {
protected $baseDir;
public function __construct() {
$this->baseDir = dirname(__FILE__);
}
public function getBaseDir() {
return $this->baseDir;
}
}
?>
Et dans un autre fichier, dans un autre dossier...
<?php
class B extends A {
// ...
}
class C extends B {
// ...
}
$a = new A;
echo $a->getBaseDir();
$b = new B;
echo $b->getBaseDir();
$c = new C;
echo $c->getBaseDir();
// Annnd... all three return the same base directory.
?>
Maintenant, je pourrais faire quelque chose de ghetto, comme ajouter $this->baseDir = dirname(__FILE__)
à chaque classe étendue, mais cela semble un peu... ghetto. Après tout, nous parlons de PHP 5.3, non ? N'est-ce pas censé être le futur ?
Existe-t-il un autre moyen d'obtenir le chemin vers le fichier où une classe a été déclarée ?