これはしばらくの間私を悩ませてきた質問です。今日ではHTMLコードをインデントすることは良い習慣と考えられていますが、MVCパターンでコードをインデントする予約がいくつかあります。これは(ばかげた)例です。
HTMLコード:
<!DOCTYPE html>
<html>
<head>
<title>Testing MVC Indentation</title>
</head>
<body>
<?php View('h1', 'I am a Level 1 Header'); ?>
<table>
<tr>
<td>
<?php View('h1', 'I am a Level 1 Header Inside a Table'); ?>
</td>
</tr>
</table>
</body>
</html>
正しくインデントするには、h1
ビュー(または部分的)への最初の呼び出しで次の値が返されます。
\t<h1>I am a Level 1 Header</h1>
ビューへの2回目の呼び出しは、次のようにh1
返されます。
\t\t\t\t<h1>I am a Level 1 Header Inside a Table</h1>
ただし、h1
ビューにはインデントスコープがわからないため、適切にインデントされたデータをどのように返すことができますか?また、ビューのインデントを無視すると、アプリケーションロジックの一部が公開される可能性があります(実際の例については、このページのHTMLソースコードを確認してください<div id="content">
)。
<body>
<h1>I am a Level 1 Header</h1>
<table>
<tr>
<td>
<h1>I am a Level 1 Header Inside a Table</h1>
</td>
</tr>
</table>
</body>
インデントをまったく行わないと、すべての問題が解決されますが、読み取りと保守が難しくなります。
<body>
<h1>I am a Level 1 Header</h1>
<table>
<tr>
<td>
<h1>I am a Level 1 Header Inside a Table</h1>
</td>
</tr>
</table>
</body>
この問題に対して私が見ている唯一の実行可能な解決策は、Tidyと出力バッファリングを使用することですが、処理と読み込みが不必要に遅くなる(?)ので、努力する価値があるのではないかと思います。また、ソースではなく出力のみをインデントするため、HTMLコードの保守が容易になることはありません。
「基本的な」質問で申し訳ありませんが、私はここ数年ビジネスロジックに焦点を当てており、プレゼンテーションの世界とは少し切り離されています。古き良き時代には、HTMLコードはすべてインデントされていませんでした。ここでも、テーブルを使用してレイアウトを設計しました。今すぐ追いつくようにしています。
このテーマに関する解決策/洞察はありますか?
関連する質問: