php - mVc 世界中的 HTML 缩进

标签 php html model-view-controller indentation tidy

<分区>

这是一个困扰我一段时间的问题,现在缩进 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 View (或部分)应该返回:

\t<h1>I am a Level 1 Header</h1>

第二次调用 h1 View 应返回:

\t\t\t\t<h1>I am a Level 1 Header Inside a Table</h1>

h1然而,view 并不知道它所在的缩进范围,那么它到底怎么才能返回正确缩进的数据呢?此外,在 View 中忽略缩进可能会泄露部分应用程序逻辑(查看此页面的 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>

我看到这个问题唯一可行的解​​决方案是使用 Tidyoutput buffering ,但我想知道这样做是否值得,因为它会使处理和加载不必要地 (?) 变慢。此外,这不会使维护 HTML 代码变得更容易,因为它只缩进输出,而不缩进源代码。

对于“基本”问题,我很抱歉,但过去几年我一直专注于业务逻辑,我与演示世界有点脱节——在过去的美好时光里,我的 HTML 代码都是未缩进的,但话又说回来,我也使用表格来设计布局 - 只是想 catch 现在。

关于这个主题的任何解决方案/见解?


相关问题:

最佳答案

我想说的是,HTML源代码 缩进是有区别的。在典型的 MVC View 中,您使用我认为应该以可读方式缩进的源代码。

但实际的 HTML 输出是另一回事。当然,困惑的缩进源代码看起来有点不专业(这就是为什么我有时倾向于完全删除任何缩进,但这通常涉及如您所说的一些 HTML 后期处理),但对于浏览器本身来说,如果根本不重要,如果我真的需要查看源代码,我将使用格式化程序或 Firebug,它以格式良好的方式显示所有 DOM 元素。

关于php - mVc 世界中的 HTML 缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2302361/

相关文章:

php - PDO::exec 还是 PDO::execute?

Javascript - Service Worker 无法正常工作

javascript - 根据值返回0或NaN计算负载

php - 将实时站点迁移到 MVC 结构的策略?

php - PHP 的 A/B 测试框架

php - 如何在 Windows 中安装依赖项或使用 Composer

javascript - 您将如何像在其他网站上看到的那样使用 javascript 访问用户历史记录?

javascript - 如何为 "Search"函数执行自动提交?

angularjs - 如何使用 Angular js中的服务和 Controller 显示模型类中的第一项

php - 保存密码 90 天