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

Phpdoc: Как указать к какому классу будет цепляться трейт?

Всем привет!

У нас в проекте есть трейты, которые цепляются только к потомку определенных классов. Например AccessControllerTrait, который цепляется к потомку класса Controller.

В этом трейте мы используем методы из Controller. Но, так как трейту нельзя указать класс с которым он будет пользоваться, все методы Controller, которые юзаются в трейте, phpStorm помечает как неизвестные, автокомплит не работает, и т.п.

Можно, конечно, в AccessControllerTrait в phpdoc задекларировать методы из Controller с помощью @ method, но это придется делать в каждом терйте - это не вариант.

Есть ли способ легко и быстро сказать трейту, у кого он будет юзаться?
  • Вопрос задан
  • 702 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
mitaichik
@mitaichik Автор вопроса
В общем, покапавшись, выяснилось что в phpStorm для этого есть специальная аннотация @mixin.

Так же с помощью этой аннотации можно помечать и кастомные примеси, например, поведения в Yii
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
27cm
@27cm
TODO: Написать статус
В трейты можно добавлять абстрактные методы, но это всего лишь более правильная альтернатива для "в phpdoc задекларировать методы из Controller с помощью @method". Все абстрактные методы можно вынести в отдельный трейт, который уже подключать в других трейтах. Но такая архитектура будет попахивать.

Есть ли способ легко и быстро сказать трейту, у кого он будет юзаться?

Нет.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы