PHP:分离业务逻辑和演示逻辑,值得吗?

Mac*_*ddy 4 html php templates

可能重复:
我为什么要在PHP中使用模板系统?

我只是好奇有多少开发者真的这样做了?

到目前为止,我还没有,我只是好奇它是否真的有助于使事情看起来更清洁,更容易遵循.我听说像Smarty这样的模板引擎有帮助,但我也听到了相反的情况.他们只是创造了不必要的开销,而且就像学习一门新语言一样.

这里有人有模板经验吗?你对他们有什么感受?对大项目有帮助还是浪费时间?

在旁注:我工作的公司没有设计师,只有两个开发人员在这个项目上负责重新设计/升级.我也使用了一些AJAX,这会有模板引擎的问题吗?

Chr*_*ier 10

这种做法不仅使代码看起来更清洁,而且还具有许多长期和短期的好处.

组织代码永远不会出错.首先,如果其他人必须在您之后接听,它会使维护更容易,更容易阅读.我以前和Smarty一起工作过很好,它让设计师不会干扰程序代码.

使用模板系统和框架可以更轻松地完成任务.你可以遵循的经验法则是DRY(不要重复自己).框架可帮助您实现此目标.

您可能希望研究MVC,这是这些框架所基于的模型.但是您可以在不必使用框架的情况下实现此设计结构.避免学习曲线.对于像Zend这样的框架,学习曲线远远大于其他框架.

我发现Code Igniter相当容易使用,并且在他们的网站上有一些非常有用的视频教程.

祝你好运!


Mer*_*ste 6

实际上,这是需要与视图分离的业务逻辑.您可以在视图中使用php作为"模板语言".

您可以在任何模板引擎上使用ajax.

编辑

我最初的回答解决了是否使用模板引擎来生成html的问题.

我认为只要将业务逻辑与表示逻辑分开,php就足以完成模板任务.

即使对于简单的页面也值得这样做,因为它使您能够:

  • 从作为面部的代码中隔离作为应用程序大脑的代码,这样你就可以改变面部,而不会弄乱大脑,或者你可以在不制动外观的情况下增强大脑
  • 在20%的代码中隔离80%的错误
  • 创建可重用的组件:您可以为同一个业务代码分配不同的表示代码,反之亦然;
  • 从设计请求(表示代码)的关注点中分离出对功能请求(业务代码)的关注,这些问题通常也与客户端的不同人员以及承包商方面的不同人员有关
  • 使用不同的人来编写业务代码和表示代码; 你可以让设计师直接处理演示代码,最小的php知识;

一个模拟MVC并且不使用对象的简单解决方案可能是:

  • 使用单个控制器php文件,它通过.httpdaccess文件接收所有请求;
  • 控制器根据请求决定使用哪些业务和表示代码
  • 然后控制器使用include语句来包含业务php文件
  • 业务代码是神奇的,然后包括演示文稿php文件

  • 我或多或少会说些什么.我认为PHP最初是作为一种模板语言开发的,所以没有必要添加另一层,但*do*将任何非表示性代码分开. (3认同)