подскажите как бы вы сделали, где и как мне пересчитывать сам заказ, после смены его списка товаров?
у меня в голове
1) создаю сервис класс
2) инициалиирую его в конструкторе контроллера
3) в методе контроллера одной строкой меняю данные корзины
4) тут же ниже дергаю метод сервиса "обновить заказ"
но с другой стороны, другому программисту ничего не мешает взять обновить данные корзины
и все, не пересчитывать заказ... как обезопаситься от этого?
Вот чес слово, светлая голова! думаешь о другом программисте.
А всё просто, не надо в контроллере обновлять.
Сделай сервис класс, где будут методы обновления и перерасчёта.
И прямо там это делай.
Т.е. метод обновить данные корзины, в котором будет обновление и вызов метода этого же класса для перерасчёта заказа.
И не забудь всё это в одну транзакцию обернуть.
А дальше лирика уже...
но с другой стороны, другому программисту ничего не мешает взять обновить данные корзины
Но это всёравно ему заговнокодить не помешает.
Для того, чтоб не дать говнокодить нужно как минимум симфони там делать сложные тру структуры кода, которые писать в раз 10 дольше, чем сервис класс на ларавель. А ещё в 10 раз можно больше самому намудрить(если ты задал вопрос тут, на который я отвечаю, то тебе это пока рано).
А ещё чтоб всё тру-тру было, надо тесты прикрутить, что всё это ещё умножит на х3 по времени и тоже не даст гарантий:)
И самое главное, бизнес будет тебя просить как ты щас делаешь с риском что кто-то сделает баг и потом пофиксить его, чем делать всё по канонам в 10-30 раз дольше, дороже и увеличия очень сильно вход для программситов. Ну а баги там тоже будут, только намного более сложные и трудноловимые.
За мои 12 лет я понял, что надо делать как хочет бизнес, а это максимально простой, понятный код и иногда фиксить баги. И ВСЕГДА вычищать технический долг.