È in qualche modo possibile ottenere la posizione del file PHP, valutata in fase di esecuzione? Sto cercando qualcosa di simile alla costante magica __DIR__
, ma valutato in fase di runtime, come un binding tardivo. differenza Simile con self
e static
:PHP __DIR__ ha valutato il runtime (binding in ritardo)?
__DIR__ ~ self
??? ~ static
Il mio obiettivo è la definizione di un metodo di una classe astratta, utilizzando __DIR__
che sarebbe valutata rispettivamente per ogni classe erede. Esempio:
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);
}
}
Ovviamente, questo problema si verifica solo se Parent
e Heir
sono in diverse directory. Per favore, prendi questo in considerazione. Inoltre, definendo getDir
più e più volte in varie classi Heir non sembra essere e l'opzione, è per questo che abbiamo eredità ...
Questo è bello ... Qualcos'altro, gente? Il design più pulito, meglio è. –
Puoi anche usare ReflectionObject: 'return dirname (new \ ReflectionObject ($ this)) -> getFileName());' –