我有一个使用 MVC 的项目,其中视图文件正在继承$this
,它指的是附加到控制器的视图类。
一些视图中附加了辅助类,使用如下:
<?=$this->someHelper->renderSomething()?>
我希望通过这样做来帮助开发人员和 IDE:
/** @var SomeHelper $this->someHelper */
貌似不支持。有没有办法做到这一点?
我目前只能找到一种解决方法,将帮助程序声明为新变量并为此包含 @var 语句。
这是不可能的,你应该输入提示$this
。如果$this
不是任何您可以输入提示的具体类,请创建一个假类/接口来代替它作为 IDE 的帮助器:
// somewhere outside of your code base, but accessible by the IDE
// use the name of your choice
interface CodeIgniterMvc
{
/**
* @return string
*/
function renderSomething(): string;
/**
* @param array $filter Filtering conditions
* @return \Your\App\Models\User[]
*/
function getUsers(array $filter): array;
}
在意见中:
/** @var $this CodeIgniterMvc **/
当然包括在存储库中,这样每个团队成员都可以获得这样的好处。