Symfony获取/持久化面向实体的服务命名约定和最佳实践

时间:2012-07-16 13:01:34

标签: symfony naming-conventions entitymanager

Symfony2应用程序通常具有一组实体。 Doctrine EntityManager通常用于获取和持久化这些实体。

实体在整个应用程序中的多个位置使用;对于许多实体和每个实体,包装给定实体的处理以及在服务中提取/持久化是有意义的。

例如,对于User实体,可能有UserServicefetchUser($user_id)persistUser(User $user)方法(或者只有fetch()persist( })方法,这只是一个例子。)

应用程序最终可以获得许多面向实体的服务,用于获取和保留实体。这些服务的接口类似,处理的实体类型不同。

一个应用程序可以包含许多面向实体的服务似乎是一种常见的情况。因此,命名和构建此类服务的问题是一个常见问题。

对于要求创建基础EntityService和子UserService的新应用程序,WidgetServiceProductService类感觉重复,就像手段一样处理这些方面应该是一个解决的问题。

  • 是否有将此类与实体管理相关的服务引入Symfony应用程序的最佳做法?

    这感觉它应该是一个已解决的问题,或许是要遵循的良好设计模式。

  • 是否有建议遵循的命名约定?

    我观察到,在不同的应用程序中,“UserManager”和“UserService”都被选为服务名称。是否有普遍的约定?

1 个答案:

答案 0 :(得分:1)

至于命名,我知道没有针对这种情况的约定,但是有Doctrine\ORM\EntityManager类来管理实体,所以我会使用Manager而不是Service

现在,谈论实体管理服务:你真的需要这么多服务吗?如果UserService::persistUser()方法只是为了保留用户,那么为什么使用自定义服务而不是默认EntityManager

此外,您不应将存储库和持久化方法放在同一个类中。是否更容易为实体使用自定义存储库?