2013-10-05 22 views
-3

第一:这是一个架构问题。请不要回答如何解决技术问题,这已经在几个地方做,f.e:https://github.com/zendframework/zf2/issues/2761ZF2 - 为什么表单元素总是标记为真

我似乎并没有得到它。 ZF2中的表单元素不仅被标记为必需的,而且还被硬编码。

例\ Zend的\表格\元素\选择

public function getInputSpecification() 
{ 
    $spec = array(
     'name' => $this->getName(), 
     'required' => true, 
    ); 

    if ($validator = $this->getValidator()) { 
     $spec['validators'] = array(
      $validator, 
     ); 
    } 

    return $spec; 
} 

我只是不明白使得这种不可选。我想直接使用ZF2 Elements,现在我必须扩展我需要使用的所有元素。

因为在我们大多数的形式,我们有一些可选的元素,这意味着我们总是需要使用我们自己的派生类。

但是,这似乎只是错误的,所以我希望有人能够帮助我解释。

回答

1

所以你告诉我们不要以技术方式回答。最终这意味着你想争论ZF2给出的默认值。可以说,这使得它完全基于观点,因此应该关闭。

现在,当用户#somenumber告诉你,有什么勉强在Zend\Form硬编码。这都是默认设置,坦率地说 - 是的,这是基于意见的 - ZF2的默认设置非常棒。

你并不需要覆盖的元素,你就必须覆盖所要求的标志。当然,如果你想要一个全局默认值false,那么你必须覆盖,但这就是ZF2的优点。你可以按照你想要的方式做一切事情。

元素的默认被要求在默认情况下是一件好事。我非常确定在互联网上找到的所有表格元素中有超过50%是必需的。因此,默认设置是一个很好的决定。

+0

感谢您的回答,当然您是对的,这完全是基于意见的。 我也必须道歉,因为当我写这篇文章的时候我真的很沮丧,因为ZF1需要大约5分钟的设置不在那里。当缺少某些东西时,我会寻找答案,为什么会被抛弃。 ZF2真的很棒,所以我想了解为什么要求的原因不再是一面旗子了,我想很长的路要问这个问题,因为这不是一个错误。有一个制定的理由来决定,我想学习它。 – Dready

+0

@Dready分离来自“关注分离”原则。 “Form \ Element”中的'required'属性表示所需的HTML属性。当涉及验证时,您实际上需要将其设置在验证器中。是的,ZF2需要大量的“新”思维方式,但一旦理解,它实际上更加清晰直观。 – Sam

相关问题