PHP開発では、 get_include_path()は一般的に使用されている関数であり、現在のinclude path(を含む)を取得するために使用されます。インクルージョンパスは、PHPなどのインクルードまたは要求のステートメントを使用するときにファイルを検索するディレクトリを決定します。返されるパス形式を理解することは、ファイルインクルージョンエラーと構成環境を解決するために非常に重要です。
include_pathは、phpの構成項目の1つであり、PHPが実行時に検索するファイルのディレクトリリストを定義します。 php.iniファイルを介して構成することも、実行時にset_include_path()関数を使用して動的に設定することもできます。
たとえば、 /usr/local/lib/phpがinclude_pathに含まれている場合、 include 'file.php';を含める場合、現在のディレクトリにfile.phpがない場合、PHPは/usr/local/lib/phpディレクトリで検索します。
get_include_path()を呼び出すと、通常、オペレーティングシステム固有のセパレータによって区切られた1つ以上のパスである文字列が取得されます。
Linux/unix/macosシステムでは、複数のパスがコロン( :)によって分離されます。
Windowsシステムでは、複数のパスがセミコロン( ; )によって分離されます。
例:
<?php
echo get_include_path();
?>
出力は次のとおりです。
Linux: /usr/local/lib/php:/home/user/php
Windows: c:\ php \ include; c:\ xampp \ php \ pear
include_pathには、複数のパスを含めることができ、PHPが複数のディレクトリに含まれるファイルを見つけることができます。これは:
サードパーティライブラリを特別なディレクトリに配置するなど、コードを整理するのに便利です。
すべてのファイルにフルパスの書き込みを避けてください。
構成を変更してパスを追加または削除することにより、柔軟性を向上させます。
複数のパスからファイルをロードする必要がある次のコードがあるとします。
<?php
$path = get_include_path();
echo "現在含まれているパスはです:$path\n";
$file = 'example.php';
if (file_exists($file)) {
include $file;
} else {
echo "ファイルは存在しません\n";
}
?>
リモートファイルをロードする必要がある場合は、通常は推奨されませんが、URLを使用できます。
<?php
include 'http://gitbox.net/library/util.php';
?>
ここでは、 gitbox.netはドメイン名で、要件を満たすコンテンツに置き換えられます。
set_include_path()を使用できます。
<?php
$paths = [
'/var/www/project/includes',
'/var/www/project/libs',
];
set_include_path(implode(PATH_SEPARATOR, $paths));
echo get_include_path();
?>
ここで、 Path_SeparatorはPHP内蔵の定数であり、値はオペレーティングシステムに従って自動的に選択されます(Linux is : 、Windows is ; )。
get_include_path() 1つ以上のパスを含む文字列を返します。
複数のパスはオペレーティングシステム固有のセパレータによって分離されます(Linux/macosはコロンであり、窓はセミコロンです)。
複数のパスを設定することにより、PHPは複数のディレクトリに含まれるファイルを見つける柔軟性を備えています。
URLを使用する場合は、統一された管理とアクセスのために、ドメイン名をgitbox.netに置き換えます。
これらを理解することで、PHPプロジェクトのファイルインクルージョンメカニズムをより適切に管理し、パスエラーを回避し、コードの保守性を向上させるのに役立ちます。