Есть сервис. В нем некоторые действия. Для большего понимания сервис можно вызывать в разных средах (api, html страница, может консоль). Как вы сохраняете уведомления и результат операции?
public function createItem($data, $em, $user)
{
$error = [];
if (!$data) {
// Раньше я делал так
$error[] = 'Нет данных';
}
// Тут можно учитывать предыдущие ошибки или нет
if ($data['name'] === null) {
$error[] = 'Имя не введено';
if ($data['amount'] > $user->getBalance()) {
$error[] = 'Недостаточно денег';
}
// ...
}
// Тут сложность возникла:
// С одной стороны сервис должен вернуть точный результат true/false
// С другой надо получить ошибки, если хочется выдать flash messages
// или для api вернуть json с ошибкой
if (!$error) {
$em->persist(new Item($data));
$em->flush();
return true;
}
return false;
}
// в контроллере
function add() {
$service->addItem($data)
}