4

PHP プロジェクトに次のファイルがあります。

index.php
private/module1.php
private/module2.php

このようにindex.php参照module1.phpします:

require_once('private/module1.php');

次に、module1.phprequiresmodule2.phpであるため、次の行があります。

require_once('private/module2.php');

動作させるには、ルートからの相対パスを通知する必要があります。これは、 require_onceコマンドが、たまたま index.php である現在のドキュメントからのパスを想定しているためだと思います。問題は、PHP Storm がこの参照を管理できないことです。たとえば、文字列private/module2.phpをハイパーリンクに変換したり、実際の参照として認識したりしません。

これを解決するには?

4

3 に答える 3

4

PhpStorm が参照を解決するために使用するインクルード パスを指定して、PhpStorm プロジェクトを正しく構成するだけです。

[ファイル] -> [設定] -> [PHP] に移動します。

そこで、プロジェクトのルート ディレクトリ (index.php が存在するディレクトリ) をインクルード パスのリストに追加する必要があります。

これが完了すると、PhpStorm は のパスを解決する必要がありますrequire_once('private/module2.php')

さらに、 index.phpのどこかにset_include_path()を介して PHP が使用するインクルード パスのリストにプライベートディレクトリを追加することもできます。次に、 module1.phpから呼び出すだけです。require_once('module2.php')

繰り返しになりますが、PhpStorm が使用するインクルード パスのリストにプライベートディレクトリを追加して、この参照を解決できるようにする必要があります。

于 2013-03-28T11:57:50.153 に答える
1

ベースURLを使用することもできます。好き

require_once($base_url . 'private/module2.php');

ベースURLは自分でどこかに定義することも、$_SERVER変数を使用して取得することもできます http://www.php.net/manual/en/reserved.variables.server.php

于 2013-01-05T20:00:45.047 に答える