0

真的很简单的问题;当我可以简单地在 HTML 文件中使用 PHP 包含语句时,为什么要使用 Smarty 之类的模板系统来分离 HTML 和 PHP 代码?

我的逻辑错了吗?


编辑:谢谢你的回答,我有点初学者,所以让我做对了。据我了解,关于我的问题,使用php自己的语句来成功实现模板系统是完全可以的。诸如 include 和 on read 之类的语句。

我不明白为什么使用 php 比使用其他一些系统更混乱,这只不过是一种令人讨厌的理解,而 php 有自己的简单系统,只是为了这种用途而实现的......

4

2 回答 2

0

它是为模板作者提供 PHP 功能的简化子集,这些模板作者通常是前端开发人员,没有技能在后端发挥作用。

它还促进了更好的 MVC 设计,因为大多数模板语言提供的功能子集仅包括处理应用程序的视图关注点的函数,这使得在视图中进行模型操作变得困难或不可能。

于 2013-07-02T04:01:37.317 回答
0

这更多是一个良好实践的问题,而不是逻辑本身。

作为开发人员,您在创建网站时应牢记几件事,即安全性、效率、易于维护,不一定按顺序排列。

我发现制作 MVC 架构可以让您保持所有内容整齐分离。你需要做对,这可能需要一些尝试,但这是成为程序员的一部分。

在使用 MVC 时,我发现使用注册表特别有效。当应用程序运行模型逻辑时,您可以将数据添加到注册表。当它结束时,您开始创建输出 html。

现在,这因人而异,但这是我发现的最佳方法:

输出页面框架/准系统/无论你怎么称呼它。即使它只是 html 头标签。使用 requires 将模板加载到页面的空白部分。在模板代码上,您可以简单地从注册表中读取以确定要打印的数据。您可以在其他模板中使用较小的模板,几乎不会增加复杂性,特别是如果您将其视为其他函数中的函数调用,除了这是视图逻辑,而不是模型。

这为程序员和设计人员提供了充分的灵活性,即使其中一个组大幅更改了他们的代码,只要注册表中的数据保持相同的名称标签。

老实说,我从未使用过模板系统,因为据我所见,我上面描述的方法创建了更具可读性的代码,并且满足了我的所有需求。仅仅因为存在其他玩具,您不必玩它们。事实上,如果你真的不需要使用任何外部的东西,你不应该这样做,这将使你的代码更小、更快、更容易理解,因为你没有写在里面的代码更少,这将影响效率和可维护性。

于 2013-07-02T04:49:12.393 回答