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

Jon*_*ram 5 naming-conventions entitymanager symfony

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

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

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

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

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

对于新的应用程序需要的,例如,一个基地的创建EntityService和孩子UserService,WidgetServiceProductService班感觉重复,如用这样的处理方面应该是一个解决问题的方法.

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

    这感觉它应该是一个已经解决的问题,可能会有一个很好的设计模式.

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

    我在不同的应用程序中观察到,选择"UserManager"和"UserService"作为服务名称.是否有普遍的公约?

Ale*_*tis 1

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

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

另外,您不应该将存储库和持久方法全部放在同一个类中。使用实体的自定义存储库不是更容易吗?