1

I've found a framework that handles the views in a different way than just plain html. To be honest, I've no idea how are the big frameworks handling this issue because I've mostly worked with some tiny frameworks, so that's why it was an interesting thing for me. A quick example:

Instead of writing

<h2>Click on this <a href="www.example.com">example</a></h2>

You'd have to type

echo $html->h2('Click on this' . $html->link('www.example.com', 'example'));

So, my question is which one is better? Isn't plain html going to be faster? And let's say more understandable for others? Or let's leave the understandable part away, I want to know more about the performance and maybe other stuff that people know and can be mentioned on this issue.

4

4 回答 4

2

就像编程世界中的一切一样,这是一个品味问题。

虽然,我强烈反对它,有几个原因:

  • 它使非 PHP 程序员更难编写视图。
  • 以后调试很烦
  • 我喜欢以与浏览器相同的方式查看我的视图。
  • 给非常简单的东西增加了很多开销
  • 失去漂亮(和合乎逻辑)的 HTML 缩进
  • 丑陋的!

无论如何,如果您正确缩进 HTML 标记,HTML 问题很容易被发现。所以对我来说 - 一直都是纯 HTML。

虽然,一些视图助手很棒——创建链接、处理元素类、验证等。在我看来,试着找到最佳位置——不要用太多的 PHP 弄乱你的视图,但不要放弃确保您的代码尽可能动态。

于 2012-06-05T16:33:29.307 回答
1

你不能这么说... 通常,MVC 框架将代码分成模块,通过分离数据库操作、逻辑操作和视图来使站点干净。还有其他一些情况,比如发送邮件、分页、图像处理和操作等,这些都是普通编程中的复杂任务,可以在 MVC 中用几行代码完成,因为每件事都是预定义的。您在上面定义的示例仅遵循该模式,但您也可以以其他方式使用它。所以,它是一个替代方案。无论哪种方式,您都可以使用它。因此,当您发现在某些情况下 MVC 可能很复杂时,您可以按照自己的方式进行操作。所以,我想它更灵活,让我们可以选择两种方式。

希望这能回答你的问题。

于 2012-06-05T16:22:07.873 回答
1

我亲自使用过 Yii PHP 框架,即使它也有处理 HTML 视图(CHtml)的方式,尽管我选择使用其中任何一个。渲染纯 HTML 比编写一些由框架解释然后生成为 HTML 的代码更快的解释是有道理的,事实上,我确实认为纯 HTML 更快。

然而,这允许在创建动态 HTML 内容时具有更好的灵活性,例如表单支持方法(验证等)和其他辅助方法。此外,我认为这更多地是从对面向对象编程的痴迷中演变而来的。

但习惯它只是时间问题。如果您考虑性能,请认为它不会真正产生影响。

于 2012-06-05T16:25:57.780 回答
0

CodeIgniter 是提供 HTML 帮助程序以允许您通过 PHP 代码生成 HTML 的框架之一(就像您问题中的后一种情况一样)。

虽然这会稍微慢一些,但优点是它可以确保输出有效的 HTML。举个例子:

<h2>This is a header without a closing tag

以上是一个常见的错误,它会默默地失败。但是,如果使用 HTML 帮助函数,就不会犯同样的错误

echo heading('This is a header',2);

至于可读性,任何熟悉 PHP 的人都应该能够轻松理解任一代码片段。

于 2012-06-05T16:16:05.393 回答