Est-il possible d'obtenir l'emplacement du fichier PHP, évalué lors de l'exécution? Je cherche quelque chose de similaire à la constante magique __DIR__
, mais évalué à l'exécution, comme une liaison tardive. différence similaire avec self
et static
:PHP __DIR__ a évalué l'exécution (liaison tardive)?
__DIR__ ~ self
??? ~ static
Mon objectif est de définir une méthode dans une classe abstraite, en utilisant __DIR__
qui serait évaluée respectivement pour chaque classe d'héritier. Exemple:
abstract class Parent {
protected function getDir() {
// return __DIR__; // does not work
return <<I need this>>; //
}
}
class Heir extends Parent {
public function doSomething() {
$heirDirectory = $this->getDir();
doStuff($heirDirectory);
}
}
De toute évidence, ce problème ne se produit que si Parent
et Heir
sont dans des répertoires différents. S'il vous plaît, prenez cela en compte. En outre, la définition getDir
maintes et maintes fois dans différentes classes d'Héritier ne semble pas être et de l'option, c'est la raison pour laquelle nous avons l'héritage ...
C'est cool ... Rien d'autre, les gens? La conception du nettoyeur est la meilleure. –
Vous pouvez également utiliser ReflectionObject: 'return dirname (nouveau \ ReflectionObject ($ this)) -> getFileName())' –