O
O
ozornick2020-12-31 13:47:42
symfony
ozornick, 2020-12-31 13:47:42

Symfony: How to handle notifications from a service?

There is a service. It contains some actions. For better understanding, the service can be called in different environments (api, html page, maybe the console). How do you store notifications and the result of an operation?

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)
}

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question