Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Скажем при одном запросе в контроллере User был с trait BillableStripe а при другом BillableBraintree. Вопрос не столько о синтаксисе и ООП. А скорее о паттернах и практиках. Или тут скорее создать два сервис провайдера включающих зависимость от User и вызывать в контроллере или тот или другой по надобности смотря какую форму отправили?
Не в сети
Ты сейчас изобретаешь полиморфизм. https://habrahabr.ru/post/37610/
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Понял. И от чего тут можно отнаследовать? сделать интерфейс и от него два сервиса? Или от класса User отнаследовать 2 класса, каждый из который подключает свой trait ?
Не в сети
Вообще какую бы Вы выбрали архитектуру для SAAS приложения, которая не привязано жестко к одному шлюзу, а где User может выбирать скажем оплату и подписку картой через Stripe, а оплату и подписку PayPal чеерез Braintree, а может и еще какие то платежные методы и шлюзы для регулярных платежей...
Понятно можно сделать что то похожее на Laravel cashier с наследованием от интерфейса или абстрактного класса и полимформизмом метода, скажем метод newSubscription() для одного метода подписки так реализован, для другого сяк. Также isSubscriebed() OnTrial() итд. Но вот поточнее бы структуру кто порекомендовал.. И как то может с trait'ами для юзера намутить... Что бы вызывали скажем всегда $user->newSubscription() $user->isSubscriebed() но вот где то дали понять метод какого типа наследника использовать... Может если речь о создании новой именно подписки то что то вроде паттерна фабрика, фабричный метод. А уже для существующей подписки, выбранные метод будет полем модели юзер и в завимости от его значения тот или иной наследник будет подгружаться...
В общем какое то бы простое красивое решение
Изменено htclog81 (08.12.2017 20:32:00)
Не в сети
Страницы 1