PHPプロジェクト開発では、モジュール管理コードは保守性を向上させるための重要な手段です。長いファイルパスの頻繁な書き込みを避けるために、 get_include_path()およびset_include_path()を使用して、外部PHPファイルを柔軟にロードできます。この記事では、このメカニズムの原則と使用法を紹介し、開発者が迅速にマスターするのに役立つ例を提供します。
include_pathは、 includeなどの機能を含む機能を実行するときに検索するディレクトリパスを指定するPHPの構成オプションです。get_include_path()を介して現在のパス設定を表示するか、 set_include_path()を使用して変更するか、 php.iniのデフォルトパスを構成できます。
たとえば、default include_pathは通常、次のようなものです。
echo get_include_path();
// 出力の例:.:/usr/share/php
。現在のディレクトリを表し、続くパスはシステムのデフォルトPHPライブラリパスです。
set_include_path()関数を使用して、includeを含むパスにカスタムディレクトリを追加できます。この方法は、一時的なパスの変更に特に適しており、現在のスクリプトに特定の特定のファイルのみをロードするシナリオに適しています。
たとえば、public function file functions.phpがあるとします。これは/var/www/gitbox.net/libsディレクトリに配置されています。次のように設定できます。
set_include_path('/var/www/gitbox.net/libs');
既存のパスを破棄したくない場合は、 Path_Separator定数ステッチを使用できます。
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/libs');
これにより、元の検索パスが維持され、新しいディレクトリが追加されます。
パスを設定した後、絶対的なパスを書き込むことなくconvilowを使用してファイルを直接読み込むことができます。
include 'functions.php';
PHPは、include_pathで指定されたパスでfunctions.phpファイルを検索します。
logger.phpクラスを備えた/www/gitbox.net/toolsディレクトリにいくつかの一般的なクラスファイルを保存するとします。次のようにコードを整理できます。
<?php
// 設定 include_path
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/tools');
// 負荷 Logger 親切
include 'Logger.php';
// 使用 Logger
$logger = new Logger();
$logger->log('ログの初期化が完了しました');
このようにして、メインプログラムのパス管理を簡素化するために、ツールクラスまたはパブリック関数を統一ディレクトリに配置できます。
含める前にファイルがcontruct_pathに実際に存在することを確認する場合は、 stream_resolve_include_path()を使用できます。
$file = 'Logger.php';
if ($fullPath = stream_resolve_include_path($file)) {
include $fullPath;
} else {
echo "書類 $file に存在しません include_path 真ん中。";
}
これにより、パスの問題によって引き起こされる致命的なエラーを回避するための、より堅牢なエラー処理メカニズムが提供されます。
include_pathを設定することにより、PHPは複数のディレクトリでよりインテリジェントに含めるファイルを見つけることができます。この方法は、コードの読みやすさを改善するだけでなく、プロジェクト構造をより適切に整理するのにも役立ちます。インクルードと組み合わせることで、開発における非常に実用的な手法です。
実際のプロジェクトでは、初期化スクリプトのinclude_path設定をカプセル化して、すべてのパブリックパスを管理し、維持および展開しやすいことをお勧めします。