Php 记录数组参数
Php documenting array param
问题是关于 phpDocs 和描述数组参数的。
例如我有这样的代码
<?= $view['form']->getElement('number_of_doors_id'); ?>
而且 phpStorm 不理解 'form' 键是什么。
我试过了
/**
* @var $view['form'] \Framework\Templating\Helper\FormHelper
*/
/**
* @params $view['form'] \Framework\Templating\Helper\FormHelper
*/
我想到的唯一解决方案是像这样对数组使用多种类型:
/**
* @var (\Framework\Templating\Helper\FormHelper|int)[] $view
*/
其中 int 是数组键的另一种类型
来自 PHPDOC:
specified containing multiple types, the Type definition informs the
reader of the type of each array element. Each element can be of any
of the given types. Example: @return (int|string)[]
另一种选择是将此数组变量赋值给普通变量。
我认为目前没有其他可能。
在类似的情况下,我最终从数组中提取变量并具有单独的 @var
块:
/**
* @var \Framework\Templating\Helper\FormHelper $form
* @var \Framework\Templating\Helper\UrlHelper $url
*/
extract($view);
$form->getElement('number_of_doors_id');
我看到的另一种选择是每个视图有 'viewModel' class:
class AboutViewModel
{
/**
* @var \Framework\Templating\Helper\FormHelper $form
* @var \Framework\Templating\Helper\UrlHelper $url
*/
public $form,
$url;
}
在你看来
/**
* @var \Framework\Views\AboutViewModel $vm
*/
$vm->form->getElement('number_of_doors_id');
修改了@Robert的回答,解决了这个问题
<?php
/**
* @var $view \Framework\Templating\Helper\FormHelper[]
*/
?>
如果你需要两种不同的类型,就这样做
/**
* @var $view \Framework\Templating\Helper\FormHelper[]|\Framework\Templating\Helper\TranslatorHelper[]
*/
以此类推
问题是关于 phpDocs 和描述数组参数的。 例如我有这样的代码
<?= $view['form']->getElement('number_of_doors_id'); ?>
而且 phpStorm 不理解 'form' 键是什么。
我试过了
/**
* @var $view['form'] \Framework\Templating\Helper\FormHelper
*/
/**
* @params $view['form'] \Framework\Templating\Helper\FormHelper
*/
我想到的唯一解决方案是像这样对数组使用多种类型:
/**
* @var (\Framework\Templating\Helper\FormHelper|int)[] $view
*/
其中 int 是数组键的另一种类型
来自 PHPDOC:
specified containing multiple types, the Type definition informs the reader of the type of each array element. Each element can be of any of the given types. Example: @return (int|string)[]
另一种选择是将此数组变量赋值给普通变量。
我认为目前没有其他可能。
在类似的情况下,我最终从数组中提取变量并具有单独的 @var
块:
/**
* @var \Framework\Templating\Helper\FormHelper $form
* @var \Framework\Templating\Helper\UrlHelper $url
*/
extract($view);
$form->getElement('number_of_doors_id');
我看到的另一种选择是每个视图有 'viewModel' class:
class AboutViewModel
{
/**
* @var \Framework\Templating\Helper\FormHelper $form
* @var \Framework\Templating\Helper\UrlHelper $url
*/
public $form,
$url;
}
在你看来
/**
* @var \Framework\Views\AboutViewModel $vm
*/
$vm->form->getElement('number_of_doors_id');
修改了@Robert的回答,解决了这个问题
<?php
/**
* @var $view \Framework\Templating\Helper\FormHelper[]
*/
?>
如果你需要两种不同的类型,就这样做
/**
* @var $view \Framework\Templating\Helper\FormHelper[]|\Framework\Templating\Helper\TranslatorHelper[]
*/
以此类推