在 php 代码中混合 html 代码和 css 样式


Mixing html code and css styling in php code

我正在经历一些我继承的PHP代码。我可以看到CSS样式和HTML已合并到同一个php文件中。不用说,它对我来说就像狗粮,我认为这是非常错误的,但也许我在这里错过了一些东西......

  • 是否有任何合乎逻辑的理由来解释这是否有意义?我正在考虑加载时间或其他什么..

为什么内联CSS或JS不好?

示例

<div style="width: 800px; margin: 1em auto; font: bold 1em/1.2 Verdana, Arial, Helvetica, sans-serif">
    <div style="float: left; width: 400px; padding: 1em 2em; font-size: 0.9em">
        <span id="get-shit" onclick="callSomeFunction()">News</span>
    </div>
</div>

文件大小

您的HTML代码将更重,即充满类似代码的网页的kb大小将比必要的大得多。

缺少缓存

HTML 代码永远不会被缓存。与此相反,外部依赖项,如CSS和JavaScript文件,将在第一次访问后由访问者的Web浏览器缓存 - 这意味着它不会为访问者访问的网站中的每个页面加载大量多余的HTML代码,它将快速从Web浏览器缓存中本地检索所有样式和交互。

可访问性差

当涉及到内联JavaScript代码时,例如在上面的例子中,它被应用于没有任何内置回退交互处理程序的元素(即,就像链接将您带到其href属性中指定的URL等)。这意味着当 JavaScript 由于某种原因不可用时,它将不起作用。

代码维护困难

在对代码进行更改时,我相信每个 Web 开发人员都会同意,将代码放在一个集中位置比更改分布在网站文件中的完全相同类型的代码片段要好得多。为整个网站维护与上述类似的代码将是地狱。

如果你生成部分css或html代码是有意义的。无论如何,在这种情况下,我建议使用仅输出变量的模板文件。

将所有代码放在一个文件中可能会减少包含的数量,但会增加需要包含的一个文件的大小。我建议首先专注于开发正在运行的 Web 应用程序,而不是修复性能瓶颈。有一些工具,如用于数据库查询结果的apc_cache或用于 rarley 更改 html 输出的file_caches。

正如你已经意识到的,混合php和html/css代码与功能更难阅读。

表明我的答案是正确的一个事实是,每个现代框架都使用模板文件。例如ZendFramework CakePHP或Codeigniter。