这是一个困扰我一段时间的问题,现在缩进 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>
虽然对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和output buffering,但我想知道是否值得付出努力,因为它会使处理和加载不必要的(?)缓慢。此外,这不会使 HTML 代码的维护变得更容易,因为它只缩进输出,而不是源代码。
对于“基本”问题,我很抱歉,但过去几年我一直专注于业务逻辑,并且我与演示世界有点脱节 - 在过去的美好时光中,我的 HTML 代码都是未缩进的,但后来再次,我也使用表格来设计布局 - 只是想现在赶上。
关于这个主题的任何解决方案/见解?
相关问题: