使用Zend_Form过多混合演示与业务逻辑?

时间:2011-03-13 08:58:21

标签: php oop zend-framework

MVC不应该将表示代码与其他所有代码分开吗?难道这不会让前端设计人员分别处理代码变得更加困难吗?

3 个答案:

答案 0 :(得分:3)

这是ZF的Matthew Weier O'Phinney在using Zend Form in your Model

上所说的话
  有些人认为这违反了“关注点分离”的概念,因为它将渲染逻辑混合到模型中。我觉得这是一个迂腐的论点。当附加到表单时,Zend_Form可以严格用作输入过滤器;当您希望渲染表单时,可以从模型中提取表单,并在视图脚本中执行任何特定于视图的操作 - 配置装饰器,设置操作和方法等。此外,各种插件 - 验证器,过滤器,装饰器 - 在使用之前不会加载 - 这意味着当您仅使用Zend_Form作为输入过滤器时,装饰器几乎没有开销。

     

基本上,这种方法可以帮助您遵循DRY原则(一个验证/过滤器链),同时帮助您保持业务和视图逻辑的完全分离。最后,您获得模型的一个或多个表单表示,这有助于快速应用程序开发,以及在模型和视图之间提供可靠的语义联系。

当然,如果你认为前端设计师在想要调整输出时必须查看单独的表单渲染器甚至单独的Zend Form配置,那么你是对的:这比直接输入一些HTML更困难。事实上Zend_Form并不是开发人员友好的开始并不会让它变得更好。

<my2c mood="rantish">
在听过设计师现在无法做到的众多事情之后,我想知道他们是否应该创作HTML。使用Javascript中的CSS选择器和XPath,前端开发人员无法调整页面上没有任何内容,所以为什么要关注HTML。
</my2c>

答案 1 :(得分:0)

在我看来,表单是HTML页面的一个非常特殊的部分,更接近业务逻辑 可以使用表单构建器(并且非常诱人 - 仅指定一次字段,而不是表单值,错误处理程序,表单验证程序等十次)。

所以,在这个特殊情况下我没有看到任何坏事。

答案 2 :(得分:0)

您可以单独渲染Zend_Form装饰器,以便为前端设计人员使用Zend_Form更简单:http://weierophinney.net/matthew/archives/215-Rendering-Zend_Form-decorators-individually.html

无论如何,您不能只使用HTML,因为您需要加载值,添加错误......