YAML ファイルをロードする PHP CLI アプリを作成しています。Xdebug セッション内でこれを実行しようとすると、次のようになります。
if (file_exists(__DIR__ . '/../../foo/bar')
{
/* ... */
}
__DIR__allways は、常にfromxdebug:につながるものです。falsefile_exists()
回避策はありますか?
YAML ファイルをロードする PHP CLI アプリを作成しています。Xdebug セッション内でこれを実行しようとすると、次のようになります。
if (file_exists(__DIR__ . '/../../foo/bar')
{
/* ... */
}
__DIR__allways は、常にfromxdebug:につながるものです。falsefile_exists()
回避策はありますか?
を設定$dir = __DIR__;して使用しますif (file_exists($dir . '/../../foo/bar')。そのように動作します。
問題は、スクリプト内のDIRがパーサーによって既に置き換えられているため、デバッガーが間違った値を表示することです。
全体の説明はここにあります:
PHPマジック定数__FILE__をEclipseとPDTで動作させるにはどうすればよいですか
得られる出力は間違っていません。FILEは、パーサー時に評価される特別な定数です。
__DIR__別の方法として、定数をdirname(__FILE__)関数に置き換えます
if (file_exists(dirname(__FILE__) . '/../../foo/bar')
{
/* ... */
}