5
実行時に評価されるPHPファイルの場所を取得することはどういうわけかできますか?私は魔法の定数である__DIR__
に似たものを探していますが、実行時に遅延バインディングとして評価します。 self
とstatic
と同様の違い:PHP __DIR__ランタイム評価(レイトバインド)?
__DIR__ ~ self
??? ~ static
私の目標は、各相続人のクラスのそれぞれに評価されるだろう__DIR__
を使用して、抽象クラスでメソッドを定義しています。例:
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);
}
}
、この問題はParent
とHeir
が別々のディレクトリにある場合にのみ発生します。これを考慮してください。また、様々な相続人のクラスで何度も繰り返しgetDir
を定義することは、我々が継承を持っている理由です、こととオプションしていないようです...
これはクールです...他に何か、人々?クリーナーの方が良いデザインです。 –
ReflectionObjectを使用することもできます。 'return dirname(new \ ReflectionObject($ this)) - > getFileName());' –