组织ZF2服务工厂类的最佳实践

时间:2014-03-04 19:11:57

标签: php zend-framework2

在Zend Framework 2中,服务工厂分散在整个库中,最集中的是Zend\Mvc\ServiceZend\View\Helper\ServiceZend\Navigation\Service和其他一些地方也有服务工厂。我一直无法找到任何有关服务工厂组织的官方最佳实践。

我认为也许基于MVC的服务是相互依赖的,但情况并非总是如此(见Zend\Mvc\Service\ViewJsonStrategyFactory)。我还考虑过这样的想法,即特定于库的服务工厂可能没有外部依赖关系,但情况并非总是如此(参见Zend\View\Helper\Service\IdentityFactory)。

是否有关于组织ZF2服务工厂类的“官方”最佳实践?你如何组织工厂课程?

2 个答案:

答案 0 :(得分:2)

不要认为有正式的会议。

我们在办公室里做的是在<Module>\Factory命名空间内粘贴工厂。或者更常见的是在顶级命名空间内的Factory子命名空间(FooModule\FactoryVendor\FooModule\Factory等)。

因此,对于以下类:

  • App\Form\Delivery
  • App\Form\Fieldset\Contact
  • App\Listener\IdentityProvider

我们有工厂类:

  • App\Factory\Form\Delivery
  • App\Factory\Form\Fieldset\Contact
  • App\Factory\Listener\IdentityProvider

答案 1 :(得分:0)

如果没有任何文档,最佳做法是使用代码。正如您所观察到的,代码的粒度将存储在/Service目录中(根据PSR-0规则的命名空间,类以Factory结尾)。正如@sam所说,/Service目录取决于服务的用例。

这就是我们在ZF2应用程序中的运作方式。

ZF3可能会宣布一个特定的最佳做法......虽然我对此表示怀疑[/意见]。考虑在@ freenode.net

上询问#zftalk.dev