@ubuntu_lts

То есть от дубля кода мне никуда не деться?

Трабла выглядит примерно так.

Есть контроллер покупок и продаж в нём два экшена купить и продать.

Есть контроллер так называемой ознакомительной локации, в которой нужно обязательно попробовать произвести покупку и продажу, идёт контроль действий, поэтому, если не пройти ознакомительную локацию, то нет доступа к контроллеру покупок и продаж.

Так как доступа к контроллеру покупок и продаж - нет, пока не прошёл ознакомление :), то его нельзя использовать для этого самого ознакомления)))

Получается мне для ознакомительной локации нужно тупо переписать в её контроллер код из контроллера покупок и продаж, правильно?
  • Вопрос задан
  • 1590 просмотров
Решения вопроса 1
maksim92
@maksim92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Нет не правильно. Дублирование это зло. В один момент вы можете забыть, что у вас покупка в двух местах. В одном поправите - во втором забудете.

Вам нужно создать какой-то сервис куда вы сможете вынести эту логику. Например OrderService. В нем будут методы купить и продать. Этот сервис вы подключаете в контроллер. И из контроллера вызываете. В итоге у вас может быть кучу контроллеров и действий, которые работают с одним сервисом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@WaterSmith
Android-разработчик. Java, Kotlin
Используйте наследование. Пусть у вас контроллер покупок и продаж наследуется от некоего базового контроллера сделок, и контроллер тестовых сделок тоже наследуется от базового контроллера. Весь общий код вы выносите в базовый контроллер и ничего переписывать не нужно.
Ответ написан
cr1gger
@cr1gger
Тупые вопросы порождают тупые ответы (с)
Вынести ознакомление за контроллер продаж и покупок.
Либо, сделать права доступа на экшены.
Чтобы на экшен ознакомление был доступ у всех
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы