是否有一个有效的 Docblock 标签可以让 trait 知道它将与哪个类/接口一起使用?例如(下面是纯编的代码)。
interface Authenticatable {
public function getId();
}
class User implements Authenticatable {
use HasAvatar;
}
class Admin implements Authenticatable {
use HasAvatar;
}
trait HasAvatar {
public function getAvatarUrl() {
return AvatarService::getAvatarUrlForId(
$this->getId()
);
}
}
您可以看到来自父类的HasAvatar
特征访问。getId()
但是,当您在 IDE 中时,它无法找到getId()
,因为它不属于该特征,并且没有注释提示说明在哪里可以找到此方法。
因此有没有办法告诉这个特征它将以特定的方式实现?例如
/**
* @used-by \App\Interfaces\Authenticatable
*/
这会让 IDE 知道它可以访问所有内容Authenticatable
?
谢谢