Подскажите, как лучше группировать логику? К примеру надо сделать покупку товара. Мне бы хотелось сделать это как то так
$product->buy($userId);
То есть в этом методе должна считаться скидка, присваиваться какой то статус товару, возможно у пользователя деньги со счета сниматься и т.д.. Я так понимаю надо сделать сервис и трейт для модели, который сможет делать эту работу и в котором будет прописана основная логика, но непонятно, как его связывать с моделями и моим приложением, получается куча зависимостей. То есть он должен использовать какой то модуль скидок, модуль промокодов например.. Как это все связать не понимаю, объясните плиз!
darksladen дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац). В противном случае, ваши вопросы будут удаляться по причине тег-спама, а систематические нарушения приведут к блокировке учетной записи.
Во-первых что делает метод buy($userId)? Продает? Как он продает один товар? А если товаров несколько покупает пользователь? А вообще -- что вы вкладывает в слово buy? Добавить в корзину, списать? Опять же вопрос -- если несколько товаров?
А если не оплатили? Как вы продали без оплаты? Значит не продать, а заказать?
Вообще не понятно, что вы там нагородили.... ТЯжело вам ответить на такой вопрос
Абсолютно согласен с Максим Федоров - опишите более подробно логику покупки, нельзя понять куда ее поместить не зная что подразумевается под словом "покупка" в конкретно Вашей системе