2

ここでのプログラミングの実践に関する非常に簡単な質問:

HTMLコードが生成されるとすぐにecho()を使用してユーザーに出力し、同時にob_start()を使用してコードの後半でヘッダーを出力できるようにしました。最近、これは悪いプログラミング手法であり、最後まで HTML 出力を保存する必要があることに気付きました。

これには理由がありますか?それは何ですか?出力バッファリングが良い代替手段ではないのはなぜですか?

ありがとう!

4

3 に答える 3

2

必ずしも順序どおりではありません。

  • echoHTMLを出力するために使用するのは面倒です。PHP はテンプレート言語です。HTML を出力する必要がある場合は、テンプレート言語から抜け出すことができます。

    <?php echo "<div id=\"foo\">" . $bar . "</div>"; ?>
    

    <div id="foo"><?php echo $bar; ?></div>
    
  • 最初に HTML を生成し、後でヘッダーを出力するのは、厄介なロジックです。最初に何を送信するかを決定し、次に適切なヘッダーを送信して、コンテンツを生成します。
  • 後でヘッダーを送信するために HTML をバッファリングすること自体は実際には問題ではありませんが、構造化されていないフローの指標です。
  • あなたのアプリは、論理的なステップのいくつかの区画化/分解から恩恵を受ける可能性があります。

MVC パターンを調べます。

于 2011-01-05T03:29:17.703 に答える
1

HTML がブラウザーに送信されるたびに、ヘッダーが受信/作成されます。これが発生すると、PHP はそれ以上ヘッダーを送信できなくなります。したがって、コードを「早い段階で」送信すると、ヘッダーを送信する PHP の機能が無効になり、コードの柔軟性が (現在または将来の変更に対して) 制限されます。

于 2011-01-05T03:22:48.563 に答える
1

ビューに出力する前に、あらゆる種類のものを処理することをお勧めします。たとえば、 や などの追加のヘッダーを送信する必要がある場合がありLocationますSet-Cookie

また、どのようなビューが必要になるかはわかりません。今回の応答は HTML ですが、後で JSON または XML として表示したい場合はどうすればよいでしょうか? 再構築に苦労するでしょう。

すべての出力を最終ビューに残した場合は、HTML を XML テンプレートに交換できます。

于 2011-01-05T03:24:01.703 に答える