Задать вопрос

PHP использования трейтов для разделения класса на части

Здравствуйте!

Класс содержит много методов для работы с пользователями. Нормально ли, если разделить функционал класса по трейтам. Например, для работы с личными сообщениями, профилем и т. п. Практикуется ли такое?

Спасибо.
  • Вопрос задан
  • 2492 просмотра
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Нет, это не нормально. Нормально выносить в трейты какой-то bootstrap код, или прокси-код для реализации композиции методов, но именно реализацию классов - не ок.

Вот пример, у вас есть жирный класс для управления сообщениями, профилем и т.д. Разделяете это на отдельные классы, один для управления только сообщениями, другой - только для профиля. Инджектите их в общий класс менеджер, и прописываете все интерфейсы (то есть к классам еще и интерфейсы нужно написать, в IDE можно просто выделить интерфейс класса и сохранить отдельно). В этом случае, нормально выносить методы в трейты, так как они просто проксируют вызовы в инстанс своего класса.

Весь остальной код завязываете только на интерфейсы тех частей, что им нужны. Скажем какому-то классу не нужен менеджер профилей, ему только менеджер сообщений нужно. В этом случае можно только его инджектить.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽