Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Привет всем, пришла мне идея в одном проекте соединить несколько контроллеров в один. Хотелось бы послушать ваше мнение на этот счет. На сколько это хорошая практика, и стоит ли вообще. Проект маленкий к среднему. Буду рад любому мнению!
Не в сети
Не в сети
А какие причины то?
Что можно сказать, не зная конкретики?
Ну к примеру есть несколько контроллеров с одинаковой сущностью. По типу новости - блог. На данный момент не вижу смысла держать несколько контроллеров с почти одинаковым кодом. Если все же взглянуть на обратную сторону монеты, то при изменение одной из сущностный от других, нужно будет либо заполнять контроллер if-ами либо отделять в отдельный контроллер.
Вообще какие best practices есть на этот счет ?))
Не в сети
Не хватает деталей
каких именно деталей не хватает ? я дополню !
Не в сети
каких именно деталей не хватает ? я дополню !
Если репо открыт, покажи его, чтобы понять о чем именно идет речь.
Не в сети
Зачем сливать контроллеры?
А если изменится логика работы блога и новостей?
Опять разбивать?
Есть такая практика, как разделение логического функционала.
1. Модели разные используются
2. Может изменится логика
3. Роуты разные.
Сделать один общий абстракт? Так уж лучше общий трейт.
Но я не вижу смысла... ни абстракта, ни трейта.
Так как в контроллере много разного может быть... модели, валидаторы, ФормРеквесты, возвращаемый результат. Очень часто бывало так, что сегодня это схожий функционал, а завтра надо добавить пару строчек в одном из вариантов.
Вот и выходит, что чтобы объединить схожий функционал в контроллерах, необходимо продумать как будет реализована передача входящих данные, передача нужной модели, и возможность возвращать необходимые результат (вьюхи, json и прочее).
Я задумывался над подобными вопросами... но пришел к выводу, что это не имеет смысла. Лучше иметь несколько нормально описанных контроллера, чем общий абстракт или фасад... от контроллеров всё равно не уйти. Их по любому придется реализовывать в файлах.
Изменено Cruide (13.11.2017 14:53:49)
Не в сети
Страницы 1