Its example, not real code.
1)
ArticleController
{
public function createArticle(Request $request, ArticleService $articeService, UserService $userService, EntityManager $em){
$articeService->create(CreateArticleDTO::createFromRequest($request));
$userService->incrementArticleCount($this->getUser());
$em->flush();
}
}
ArticleService{
public function (CreateArticleDTO $dto)
{
/// create $entity
$this->entityManager->persist($entity);
}
}
UserService{
public function (User $user)
{
$user->setArticelCount($user->getArticelCount()+1);
}
}
or
2)
ArticleController
{
public function createArticle(Request $request, ArticleService $articeService, UserService $userService){
$articeService->create(CreateArticleDTO::createFromRequest($request));
$userService->incrementArticleCount($this->getUser());
}
}
ArticleService{
public function (CreateArticleDTO $dto)
{
/// create $entity
$this->entityManager->persist($entity);
$this->entityManager->flush();
}
}
UserService{
public function (User $user)
{
$user->setArticelCount($user->getArticelCount()+1);
$this->entityManager->flush();
}
}
1) I do flush one time, but not sure if the article will be saved to the database. ArticleService::create not save entity in DB. When I do the tests, I will have to do a flгsh outside the service. When I save many entity, i will be Batch Processing and do flush in service - It will give a different architecture.
2) I do flush two time. This is the only drawback.
Which option is better?
Aucun commentaire:
Enregistrer un commentaire