У меня есть черта, и я хотел бы напечатать подсказку $ this, чтобы сообщить компилятору о его типе:
trait MyTrait {
public function myAwesomeFunction() {
return new OtherClass($this); // warning: Expected MyAwesomeInterface, got MyTrait
}
}
class OtherClass {
public function __construct(MyAwesomeInterface $foo) { ... }
}
Поэтому мне интересно, есть ли что-то эквивалентное, например:
trait MyTrait {
public function myAwesomeFunction() {
/**
* @var $this MyAwesomeInterface
*/
return new OtherClass($this); // no warnings
}
}
Это позволило бы мне сообщить компилятору, что пользователи черты реализуют мой интерфейс.
Обратите внимание, что черта не может реализовать интерфейс в PHP (см. Почему PHP Черта может ' t реализовать интерфейсы? ).
Спасибо за любую помощь; -)