Czy w jakiś sposób można uzyskać lokalizację pliku PHP ocenianego w czasie wykonywania? Szukam czegoś podobnego do magicznej stałej __DIR__
, ale oceniany w czasie wykonywania, jako późne wiązanie. Podobną różnicę z self
i static
:PHP __DIR__ oceniony czas pracy (późne wiązanie)?
__DIR__ ~ self
??? ~ static
Moim celem jest określenie sposobu, w abstrakcyjnej klasy, stosując __DIR__
które mogłyby być oceniane odpowiednio dla każdej klasy spadkobiercą. Przykład:
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);
}
}
Oczywiście, problem ten pojawia się jedynie, gdy Parent
i Heir
są różne katalogi. Proszę, weź to pod uwagę. Ponadto, definiując getDir
kółko w różnych klasach spadkobierca nie wydaje się być i opcja, to dlaczego mamy dziedziczenie ...
To jest fajne ... Coś jeszcze, ludzie? Im czystszy projekt, tym lepiej. –
Możesz także użyć ReflectionObject: 'return dirname (new \ ReflectionObject ($ this)) -> getFileName());' –