PHPアプリケーションを開発する場合、複数のディレクトリ間でコードモジュールを整理および再利用する必要があることがよくあります。これらのモジュールを正しく見つけるために含める、要求、その他のステートメントなどのステートメントを有効にするために、PHPはget_include_path()およびset_include_path()関数を提供して、含まれるパスを柔軟に管理します。この記事では、これら2つの機能と実用的なアプリケーションシナリオの使用を詳細に紹介します。
get_include_path()は、現在のPHPのinclude Path設定を取得するために使用されます。インクルージョンパスは、PHPが含まれているファイルを検索するディレクトリのリストです。
echo get_include_path();
出力は以下に似ています。
.:/usr/local/lib/php
これは、PHPが最初に現在のディレクトリ( 。 )のファイルを探し、次に/usr/local/lib/phpでそれを探すことを意味します。
set_include_path()を使用して、phpのインクルードパスを変更します。この関数は、新しいパスリストを表す文字列を受け入れ、ディレクトリはシステムパスセパレーター(UNIX/Linuxシステムのコロン: 、Windowsのセミコロン)によって接続されます。
$customPath = '/var/www/html/includes';
set_include_path(get_include_path() . PATH_SEPARATOR . $customPath);
このコードは、既存のパスに基づいて/var/www/html/を含むディレクトリを追加します。
/var/www/html/libsディレクトリに配置されているパブリックファイルfultions.phpがあるとします。このファイルをメインプログラムに含めるために、これを行うことができます。
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');
include 'functions.php';
インクルードパスを設定することにより、各ファイルに相対または絶対パス参照モジュールを使用する必要がなく、コードの読みやすさと保守性が向上します。
現在のパスを介してファイルを見つけることができるかどうかを確認するには、 stream_resolve_include_path()関数を使用できます。
$file = 'config.php';
$resolvedPath = stream_resolve_include_path($file);
if ($resolvedPath !== false) {
echo "ファイルの場所: $resolvedPath";
} else {
echo "ファイルは見つかりません $file";
}
含まれると要求することは、 URLラッパー( http://など)をサポートできますが、この方法は通常、実際の生産環境では推奨されないことに注意してください。使用したい場合は、これを行うことができます。
$url = 'http://gitbox.net/includes/config.php';
include $url;
このリモートインクルージョンが適切に機能するためには、 Allow_url_include設定をオンにする必要があります(セキュリティ上の理由でデフォルトがオフになります)。
php.iniで変更できます。
allow_url_include = On
または、コードを使用して動的に設定します。
ini_set('allow_url_include', '1');
get_include_path()を使用して、現在のパス設定を含む現在を表示します。
set_include_path()を使用してパスを動的に追加または変更するため、コードモジュール性に便利になります。
stream_resolve_include_path()とともに、ファイルを見つけられるかどうかを確認できます。
リモートインクルージョンはサポートされていますが、慎重に使用する必要があり、ローカルパス管理を優先する必要があります。
これらの機能を合理的に使用することにより、PHPプロジェクトの構造的な明確さと保守性を大幅に改善できます。