如何在 PHP 文档块中使用 $this 引用
How to use a $this reference inside PHP docblocks
我有一个利用 MVC 的项目,其中视图文件继承 $this
,它指的是附加到控制器的视图 class。
Helper classes 已附加在某些视图中并按如下方式使用:
<?=$this->someHelper->renderSomething()?>
我希望通过这样做来帮助开发人员和 IDE:
/** @var SomeHelper $this->someHelper */
貌似不支持。有办法实现吗?
目前我只能找到一个解决方法,将助手声明为一个新变量并为此包含一个@var 语句。
不可能,您应该键入 $this
提示。如果 $this
不是任何具体的 class 你可以输入提示,创建一个假的 class/interface 作为 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 **/
当然包含在存储库中,这样每个团队成员都可以获得这样的好处。
我有一个利用 MVC 的项目,其中视图文件继承 $this
,它指的是附加到控制器的视图 class。
Helper classes 已附加在某些视图中并按如下方式使用:
<?=$this->someHelper->renderSomething()?>
我希望通过这样做来帮助开发人员和 IDE:
/** @var SomeHelper $this->someHelper */
貌似不支持。有办法实现吗?
目前我只能找到一个解决方法,将助手声明为一个新变量并为此包含一个@var 语句。
不可能,您应该键入 $this
提示。如果 $this
不是任何具体的 class 你可以输入提示,创建一个假的 class/interface 作为 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 **/
当然包含在存储库中,这样每个团队成员都可以获得这样的好处。