Многие IDE подсвечивают код и предлагают варианты авто подстановки на основании phpdoc документации.
При использовании trait в php, заранее описать какой тип вернет метод или какой тип хранит свойство не всегда возможно.
Например:
trait T_Singleton {
/**
* Вернуть единственный экземпляр класса
*
* @return
*/
static public function getInstance() {
...
}
}
При использовании данной примеси заранее не известно из какого класса будет вызвана примесь и какой тип объекта она должна вернуть. Можно конечно попробовать явно в каждом классе переопределить попробовать и описать верно тип, но это лишний код.
Вопрос: можно ли PhpStorm заставить понимать тип $instance как тип того же класса из которого будет вызываться? Может есть какое-то ключевое слово, которое бы понималось при динамической подсветки кода как имя текущего класса откуда происходит вызов?
— UPD:
Решение
Поискав еще, нашел решение через использование phpDOC директив у класса, где описываем метод, фактически которого нет в классе, но подсветка на его основе как раз нормально работает
Добавляем перед классом комментарий с методом и типом возвращаемых данных
/**
* @static @method Template_View getInstance()
*/
class Template_View {
trait T_Singleton;
...
}