5

これが私がやりたいことです。

  1. 最初のオプションは、各関数をそれぞれ異なるphpファイルに記述し、それらすべてをinclude functions.phpと呼ばれるphpファイルに含めることです。新しいページを作成するたびに、index.phpとしましょう。 php";

    なぜ私はそれをする必要があるのですか?ファイルを 1 つだけインクルードするだけで、すべての関数がインクルードされるからです。問題はおそらくサーバーの負荷です。呼び出されていない関数がパフォーマンスにどの程度影響するかはわかりません。

  2. 2 番目のオプションは、必要なファイルを再度作成し、それらをチーム化して、関数が必要なときはいつでもそれを呼び出すことです。これの欠点は、分類するためにより多くの作業を行う必要があり、多くのファイルを含める必要があることです。

だから私は尋ねたいのですが、最初のオプションは、2番目のオプションに行かなければならないほどCPUとメモリの負荷を増加させますか? 最初の方法でパフォーマンスの問題がありますか、または使用されていない関数が php によってまったく解析されませんか?

4

2 に答える 2

5

ディスクはサーバーの中で最も低速な部分であるため、この場合、「1つのファイル内のすべての機能」というバリアントを使用すると、理論的にはパフォーマンスが少し向上します。

ただし、「functions.php」を作成することはお勧めしません。より良い方法はOOPです。メソッドを使用してクラス(オブジェクト)を作成し、オートローダーとPSR-0標準を使用すると、「include」と「require」をまったく忘れてしまいます。

于 2011-07-01T12:09:26.643 に答える
4

これは、ドナルド・クヌースの有名な引用を思い出す時です:

プログラマーは、プログラムの重要でない部分の速度について考えたり心配したりするのに膨大な時間を浪費します。これらの効率化の試みは、デバッグとメンテナンスを考慮すると、実際には大きな悪影響を及ぼします。小さな効率、たとえば約97%の時間は忘れておく必要があります。時期尚早の最適化は、すべての悪の根源です。 それでも、その重要な3%でチャンスを逃してはなりません。」

一般に、開発モデルは、プロジェクトのニーズと目標に一致するように調整する必要があります。目標を達成した後は、いつでも質問したような質問に戻ることができます。あなたがそれをするとき、あなたの質問はおそらくそれ自身に答えるでしょう。プログラムの構造によって、インクルードを処理するための最良の方法が決まります。

プロジェクトに適用できる場合は、オブジェクト指向プログラミング(OOP)の使用を検討することをお勧めします。OOPを使用する場合、オブジェクトが独自の依存関係のロードを処理する場合、この問題は問題にならない可能性があります。

于 2011-07-01T12:09:29.400 に答える