【问题标题】:Pros and Cons: Writing HTML in PHP优点和缺点:用 PHP 编写 HTML
【发布时间】:2012-01-30 15:18:44
【问题描述】:

(我正在使用谷歌翻译)

我将 HTML 和 PHP 分开,只是为了在 MVC 中进行良好的编程实践。 但是很多时候我遇到员工直接在 PHP 文件中编写 HTML。

“不要那样做,不好,不是好习惯”的讨论过程中,除了“这不是好习惯”之外,我没有任何技术论据。

他们总是说,“我不必拘泥于细节。”

技术上,因为不推荐?

【问题讨论】:

  • 我同意你的看法。所以模板也是一个PHP文件?你在使用任何已知的 MVC 吗?
  • 人们会为此争论很多。将 HTML 和 PHP 混合在一起的问题是很难重用代码,而且通常更难阅读和理解。有很多方法可以做到这一点——Twig(如 Symfony 中)和 HAML 处于分离的极端。我认为只在视图中使用 HTML,并将那里的 PHP 限制为 ifforforeach 就足够了。
  • 在没有实际对该主题进行研究的情况下,我认为性能没有差异。据我所知,它唯一会伤害的是可读性。当您的代码在 HTML 和 PHP 之间跳转时,它会使您的代码更难阅读和理解。
  • 将与演示相关的所有内容都放在一个已定义的位置,这样会减少混乱并且更易于维护。仔细观察,这些不是技术论点……因此是讨论的主题。在一个对组织和结构有不同看法的团队中,必须有人制定规则。而且“这不是一个好的做法”确实不是一个好的论据——肯定有一些场景,旧式可怕的单文件 HTML-PHP 混合是绝对足够的设计。这当然是一个弱点,但绝对也是 PHP 的一个优势,它允许两者兼而有之。
  • 是的,我总是使用 MVC 开发一切,所以这个问题。我相信 HTML 是 VIEW,PHP 是控制器/模型。我看不到混合/加入“层/语言”的逻辑。无论如何,感谢 cmets。

标签: php html design-patterns web-standards


【解决方案1】:

不建议这样做,因为过去表明例程或脚本增长的时间越长,管理起来就越困难。如果您需要在一个文件中处理 HTML 和 PHP,那么您需要编写更多的代码,而不是将代码分成两部分。这让我想到你在一个文件中使用 HTML 和 PHP 编写更多内容,这会导致更复杂的代码。

这只是一般性的。有些程序员对较大的代码块没有问题,也对在同一个文件中混合语言没有问题。

乍一看,它可能看起来更容易。然而,随着软件的发展,它往往会变得更加复杂,经过一段时间的发展,值得考虑如何模块化代码,例如将视图与请求处理分开。

然后,在组件之间绘制的一条公共线位于输出(显示)和处理之间。然后处理将与输出层交互,而不是在一个脚本/例程中同时拥有两个作业(处理和显示输出)。实际上,输出实际上是抽象/规范化/简化的,以使输出代码自行处理。例如。不是将HTML输出到浏览器,而是将对象传递给输出层,然后输出层将其转换为HTML(object的含义在这里很广泛,可以是变量,数组或 OOP 对象)。

如果您与其他人一起开发,您应该一起决定在哪里画这些线,这样您就可以真正一起工作。你们俩都做错了,因为就像您在问题中所写的那样,尚不清楚如何一起工作。一起工作比偏爱一种设计更重要。如果你认为你的同事错了,你们俩都需要讨论这个问题。

【讨论】:

  • 就是我的想法。每个系统都必须针对团队的成长、维护或简单的成长而设计。如果一切都是这样计划的,那么最好将层分开,并且会更容易找到一些东西。谢谢。
【解决方案2】:

在我看来,你可以这样想。

如果 PHP 代码与如何向用户显示信息有关,则可以将其放在视图中(如果您使用 MVC 方法)或与 HTML 混合。有时你需要一小段代码来显示你想要的信息,“如果这个日期过去了,那么就这样显示,否则就这样显示”。

在任何其他情况下,出于结构、易于维护、DRY 等目的,您应该避免将 PHP 与 HTML 混合。

【讨论】:

  • 正是我要写的。恭喜你的 2k 代表 :)
  • @ChristoferEliasson 我同意你的观点,在某些情况下,作为错误的回报/验证是有效的 PHP + HTML 一起,但我仍然不完全同意,我认为 PHP 应该做他们的只能工作,既然是HTML呢。不管怎样,你已经做得很好了。谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
相关资源
最近更新 更多