requier_oneceのパスについて
発端
- ファイルパスは合っているはずなのに読み込めなくて何度もハマったのでまとめる。
原因
PHPは、「実行したファイルのあるディレクトリが常に実行時のカレントディレクトリになる」という規則があるためエラーとなってしまっていたっぽい。
解決策
__DIR__
もしくはdirname(__FILE__)
を使おう
-
__DIR__
は記入したファイルが所属するディレクトリまでのパスを返してくれる。
test--
|-layout
| |_layout.tpl
|
|-module
| |_module.php
|
|-template_c
module.php
// layout.tplを読み込みたい場合
// __DIR__には ~/test/moduleまでのパスが入っている
requir_onece(__DIR__."/../layout/layout.tpl");
2. dirname(__FILE__)
は記入したファイルが所属するディレクトリまでのパスを返してくれる。
module.php
// layout.tplを読み込みたい場合
// dirname(__FILE__)には ~/test/moduleまでのパスが入っている
requir_onece(dirname(__FILE__)."/../layout/layout.tpl");