で一括ユーザー更新を行いたいとしましょうUsersController
。
私のUsersController
中で:
foreach ($users as $user) {
$userService = new UserService();
$user->updateUser($data);
}
UserService::updateUser メソッドは単にpersist()
/flush()
だから私は、そのようなことをするのが良い考えであるかどうか疑問に思っています:
class UserService {
public function setUseTransaction($flag)
{
$this->useTransaction = $flag;
return $this;
}
public function updateUser($data)
{
// some data mapping
$entityManager->persist($user);
if ($this->useTransaction) {
$entityManager->flush();
}
}
public function commit()
{
$entityManager->flush();
}
}
それから私の中で私UsersController
はできる:
$userService = new UserService();
$userService->setUseTransaction(true);
foreach ($users as $user) {
$userService = new UserService();
$user->updateUser($data);
}
$userService->commit();
あなたの考えは何ですか?