проверить, есть ли у модели определённый трейт.
Проверка, которая работает следующая:
in_array('App\Models\Traits\Imaginable', class_uses_recursive($model))
Но, если в будущем придётся сменить namespace трейта (маловероятно, но всё же), тогда придётся переписывать их в других частях кода.
В чём суть вопроса: как получить namespace трейта?
get_class() ругается на трейт, только класс.
Выносить namespace трейта в конфиг - тоже не особо хочу.
Какие ещё есть варианты?
Не указывай просто строчкой, делай use, и всё будет ок. Нормальные ide при рефакторинге сами тебе подтянут новый неймспейс.
Обсуждают сегодня