私は書いている:
_include('a.php')
include('b.php')
_
a()
およびb()
を使用するために含めるスクリプトなど。かなり退屈です。ディレクトリのパスを設定して複数のファイルをスクリプトでアクセスできるようにする方法はありますか?
私は自分のスクリプトでこれを試しました:
_set_include_path('.;C:\xampp\htdocs\myfunctionfolder');
_
そして、環境変数PATHを設定して、これより古いものをそこに入れました。
また、変更したphp.iniに含める
_include_path = ".;\xampp\php\PEAR;\xampp\htdocs\myfunctionfolder"
_
そこに多くのファイルがある場合、各ファイルを個別に含めることなく、これらのファイルにアクセスするにはどうすればよいですか?環境変数の設定は、コマンドプロンプトで確実に機能します。
.phpファイルをディレクトリの下でまとめてアクセスできるようにするには、何か他のことをする必要がありますか?
一般的な方法は、include
/include_once
呼び出しを含む "common.php"または "includes.php"ファイルを用意することです(簡単にするため)。例えば.
次にincludes.phpには以下が含まれます:
<?php
include_once('a.php');
include_once('b.php');
?>
次に、スクリプトにincludes.php
ファイルを含めるだけです。
ただし、元の質問に回答するには、1回の呼び出しで一度に1つのファイルしか含めることができません。 opendir
やreaddir
のようなものを使用して、特定のディレクトリ内のすべてのファイルを反復処理し、見つかったファイルを含める(自動で言う)か、ファイルに基づいて各インクルードを書き出すことができますあなたが作成しています。
また、インクルードパスが行うすべての設定は、include
呼び出しが行われたときに検索するディレクトリを設定することです。これは、ファイルが自動的にロードされるディレクトリではありません(これは私があなたの投稿から得た印象です)。
include_path
を設定すると、そのディレクトリ内のすべてのファイルが含まれるわけではなく、そのディレクトリがリストに追加されるだけですPHPは、ファイルを含めるときに検索します。
Require()、include()、fopen()、file()、readfile()およびfile_get_contents()関数がファイルを探すディレクトリのリストを指定します。
これにより、ファイルシステムの深い構造または完全に異なるセクションにファイルを含めることが簡単になります。
include('/var/somewhere/else/foo.php');
Php.iniに/var/somewhere/else/
を追加すると、include_pathが
include('foo.php');
さらに、他の人が指摘したように、一般的な方法がありますが、OOPHPと autoloading classes を調べることもできます。これは、私が知っている関数では機能しません。
オブジェクト指向アプリケーションを作成する多くの開発者は、1つのPHPソースファイルをクラスごとに定義します。最大の問題の1つは、各スクリプトの最初に必要なインクルードの長いリストを作成することです(1つは各クラス)。
PHP 5では、これはもう必要ありません。まだ定義されていないクラス/インターフェースを使用しようとしている場合に自動的に呼び出される__autoload関数を定義できます。 PHPがエラーで失敗する前に、この関数はスクリプトエンジンにクラスをロードする最後の機会を与えられます。
この質問を参照してください:
インクルードする方法()すべてPHPディレクトリのファイル?
また、ベストプラクティスの観点から、複数の関数が関連している場合は、それらを同じファイルに含めることができます。また、関数とファイルのよりわかりやすい名前を付けることをお勧めします。たとえば、a()およびb()関数の両方が検証に関連している場合、たとえば、ファイル名にvalidation.phpを付け、そこに両方の関数を配置します。そして、それらの名前を、それらが何をしているかに関連する名前に変更しようとします。これにより、膨大な数の関数のリストを積み上げ始めるときに、それらが何をしているかを思い出すことができます;)
PHPのパーサーはかなり効率的です。1つ(またはいくつか)のモノリシックファイルをロードする代わりに、大量の個別ファイルをロードするのに多くの時間を浪費します。ただし、そのように分離することを主張する場合は、メタインクルードファイルを作成して個々のファイルのセットをロードすることができるため、1つのメタインクルードファイルのみをインクルードするだけで、残りは自動的に行われます。
meta.php:
include('a.php');
include('p.php');
...
include('z.php');
そして、あなたは単に行います:
<?php
include('meta.php');
あなたのスクリプトで、あなたはあなたのためにロードされたすべての個々のものを持っています。
私のほとんどのプロジェクトでは、次のような機能があります。
function appendToIncludePath($path)
{
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . BASE_DIR . $path . DIRECTORY_SEPARATOR);
}
最新のPHP ZipをダウンロードしてCドライブに解凍してから、ダウンロードcomposerしてインストールします。インストール中にPHPパスを要求します。したがって、抽出されたPHPパスを選択するだけです。
以下の手順に従ってください。
Computer
に移動します。
Advance System Settings
を選択します。
Environmental Varaibles
を選択します。Environmental Varaibles
にPath
を追加しますEnvironmental Varaibles
のシステム変数にPath
を追加します。cmd
。php -v
を入力します。PHP http://php.net/downloads.php
Composer https://getcomposer.org/download/
include __DIR__ . '/../folder1/folder2/folder3/Target.php';
include __DIR__ . '/../folder1/folder2/Target.php';
それはあなたがどんな道に行くのにも役立ちます。