为什么我们不应该在PHP类中包含html标记


Why shouldn't we include html markup in PHP classes?

在这个答案的最后,RobertPitt写道:"随着时间的推移,你会了解到你不应该直接在你的类中使用html,你会把上面的分成几个类"。

那么,为什么这被认为是不好的做法呢?

您引用的答案部分似乎自相矛盾,因为它指出您不应该在类中使用 HTML,但随后建议您创建页眉和页脚类,这可能会生成 HTML。

目前的其他答案似乎也没有解决你的问题。他们正确地指出,你引用的答案与关注点分离有关,但这不是你要问的,至少从你的问题标题来看是这样。

如果你实际上是在问编写一个负责生成HTML标记的类是否是一种不好的做法;那么简短的回答是,事实并非如此。

流行的框架有时包含专用于此目的的类,例如 Yii 中的 CHtml。

因为类本身应该是模块化的。例如,您可能希望在具有完整不同 HTML 标记的许多不同的项目中使用身份验证类。

尝试始终尽可能多地分离 GUI 和逻辑,以便获得可以在其他项目中轻松重用的代码片段。

在一个

位置混合应用程序逻辑、业务逻辑和视图部分(在此示例中为 html)违反了关注点分离和单一职责设计原则。所以,这真的不是一个好的做法。

其他答案和评论后更新:

专用类中生成 html 部分、字符串或任何类型的数据都是可以的。这没有错。你可以制作/使用/格式化或做任何你想做的事情,在你的类或方法中的html部分,字符串。问题是当您决定在应用程序的另一个类或方法(部分)中执行此操作时,主要负责处理其他内容。在没有任何原则或惯例的情况下编写代码会导致构建无法维护、难以理解、难以阅读、无味的意大利面条应用程序,没有人愿意学习/维护/扩展或使用。这不是一件好事。