get_include_path()は、現在のスクリプトのインクルードパスを取得するためのPHPに組み込み関数です。含まれるパスは、1つ以上のディレクトリのコレクションです。 PHPの使用には、ファイルをロードするためにrequire_onceおよびその他のステートメントが含まれる場合、パスを含める順にターゲットファイルを検索します。
たとえば、次のコードを実行します。
echo get_include_path();
出力が似ている可能性があります。
.:/usr/local/lib/php
これは、PHPが最初に現在のディレクトリ( 。 )内のファイルを探し、次に/usr/local/lib/phpディレクトリでファイルを探すことを示しています。
get_include_path()を合理的に構成して使用することにより、開発者はコードに特定のディレクトリを作成することなく、ファイルの読み込みパスを柔軟に管理できます。
require_once()は、ファイルを導入するために使用されるPHPの言語構造です。 require()とは異なり、 require_once()は、ターゲットファイルがロードされているかどうかをチェックします。もしそうなら、再度ロードされないため、繰り返される定義エラーが回避されます。
例:
require_once 'config.php'; // 以前にロードされた場合 config.php,ここには繰り返されるロードはありません
プロジェクトでrequire_once()を大幅に使用します。これにより、各ファイルが一度だけロードされるようにし、関数やクラスが繰り返し定義されないようにし、コードの安全な実行を確保できます。
2つを組み合わせることで、より柔軟で効率的なファイルロードコードを記述できます。例えば:
// 現在含まれているパスを取得します
$includePath = get_include_path();
// ライブラリファイルをロードする必要があるとします lib.php,ファイルはコンテンディングパスのディレクトリにあります
require_once 'lib.php';
ここで、PHPはlib.phpを検索し、含まれるパスの順序に従ってロードします。 require_onceを使用して、複数の呼び出しが呼び出されたとしても、重複負荷がロードされないことを確認します。
実際のプロジェクトでは、 set_include_path()を介してディレクトリを動的に追加できます。
// パスを含めるようにディレクトリを追加します
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/libs');
// これにより、簡単な電話だけでライブラリファイルをインポートできます
require_once 'utils.php';
ここでは、カスタムディレクトリ/var/www/gitbox.net/libsを含まれるパスに追加した後、相対ファイル名を記述して読み込み、コードを簡素化し、ハードコーディングされたパスを回避する必要があります。
<?php
// 設定に含まれるパス,カスタムディレクトリが含まれています
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/includes');
// コア構成ファイルのロード
require_once 'config.php';
// データベース接続クラスの読み込み
require_once 'db/Database.php';
// ロードツール機能ライブラリ
require_once 'utils.php';
// ロードされたクラスと機能を使用します
$db = new Database();
$db->connect();
someUtilityFunction();
?>
上記のコードでは、 config.php 、 database.php 、 utils.phpの数に関係なく、それらは一度しか読み込まれません。含まれるパスを合理的に設定することにより、コードはよりシンプルで、管理がより効率的になります。
require_once()を使用するには優先度が必要です。キーファイルが繰り返し読み込まれていないことを確認してください。
付属のパスを合理的に設定します。コードに絶対パスの書き込みを避け、コードの移植性を向上させます。
あまりにも多くのレベルや長すぎるパスを避けてください。あまりにも多くのパスが検索オーバーヘッドを増やし、パフォーマンスに影響を与えます。
get_included_files()はデバッグに使用できます。現在のスクリプトで読み込まれたファイルのリストを表示して、重複した読み込みの問題をトラブルシューティングするのに役立ちます。
get_include_path()とrequire_once()を組み合わせることにより、ファイルの読み込みを効果的に制御し、重複した負荷によって引き起こされる問題を回避し、コードの組織と実行効率を改善できます。