1

いくつかのファイルが存在する場合はそれを含むPHPコードがあります。含めるファイルは150個になる可能性があります。

この場合、file_existsを使用するのは遅いですか?代わりに、ファイル構造のキャッシュを作成するための配列を作成する必要がありますか?

ファイル構造のある種のキャッシュを作成する他の方法はありますか?

4

3 に答える 3

1

単一のリクエストを処理中に 150 個のファイル?
その場合、150 個の file_exists のためではなく、150 個のインクルードのために、この数を減らす必要があります。

要求されたパラメーターに依存し、要求ごとに 3 ~ 4 である場合は、問題ありません。

ただし、通常の配列をキャッシュとして使用することはできません。PHP は、リクエスト間で変数を保持しません。そのようなキャッシュを発明する代わりに、アプリケーションの構造を再考する必要があります。

于 2011-02-22T11:27:01.230 に答える
1

これは非常に悪い考えです。これには 2 つの実証済みの方法があります。

  • オートローダーを使用して、最初のインスタンス化でクラス ファイルの場所を動的に解決するには、通常、厳密なフォルダー構造 (ala Zend Framework) が必要です。
  • 関連するすべてのクラス ファイルを再帰的に検索し、その場所へのクラス名のキャッシュ インデックスを生成します。したがって、最初のインスタンス化では、キャッシュされたインデックスを見て、クラス名に基づいてファイルの場所を照合し、それを含めるはるかに単純なオートローダーがあります (ala Symfony1 )
于 2011-02-22T12:26:09.800 に答える
-3

@include($file)

includeファイルを開こうとするときに、ファイルが存在するかどうかを暗黙的にチェックします。

以下のコメントごと:

  • これにより、インクルード ファイル全体のエラー チェックがオフになります。
  • 存在しないファイルを含めるのは、存在するファイルを含めるよりも多少遅く、file_existsチェックよりも大幅に遅くなります。
于 2011-02-22T12:20:50.077 に答える