例えば、私はいつもこのように呼ばれるオートローダを参照してください。require_onceに__DIR__を含める理由は何ですか?
require_once __DIR__ . '/../vendor/autoload.php';
ことと
require_once '../vendor/autoload.php';
より簡潔な違いは何ですか?
例えば、私はいつもこのように呼ばれるオートローダを参照してください。require_onceに__DIR__を含める理由は何ですか?
require_once __DIR__ . '/../vendor/autoload.php';
ことと
require_once '../vendor/autoload.php';
より簡潔な違いは何ですか?
PHPスクリプトは、現在のパス(結果:getcwd()
)を基準にして実行され、独自のファイルのパスでは実行されません。 __DIR__
を使用すると、インクルードは独自のパスに対して実行されます。以下のファイル(およびディレクトリ)を作成し、実証するため
:
- file1.php
- dir/
- file2.php
- file3.php
file2.php
は、このようなfile3.php
が含まれている場合:
include `file3.php`.
あなたが直接file2.php
を呼び出す場合、それが正常に動作します。しかし、file1.php
はfile2.php
、カレントディレクトリ(getcwd()
)が含まれている場合、file2.php
のために間違っているだろう、そうfile3.php
を含めることはできません。
を含めると、PHPが自動的に検索するフォルダをいくつか設定できます。相対パスでファイルをインクルードすると、そのフォルダすべてを検索します。間違ったファイルを読み込む際のエラーを防ぐために、実際のパスを定義する方が良い。
https://secure.php.net/manual/en/function.set-include-path.php
次に、あなたが正しいファイルをロードすることを確認することができます。
これも真実ですが、これは実際に最も重要な理由ではありません。 – Evert