Я работаю с пользовательской инфраструктурой PHP и хотел бы создать для нее файл .phpstorm.meta.php
.
Фабричные методы, которые у меня есть, имеют следующий синтаксис:
<?php
// Models
$project = Loader::model('Transform', 'Project');
// returns instance of \Framework\Base\Model
$user = Loader::model('Base', 'User');
// returns instance of \Framework\Base\Model
$asset = Loader::model('Transform', 'Asset');
// returns instance of \Framework\Hunk\Transform\Model\Asset
// Helpers
$router = Loader::service('Router', 'Router');
// returns instance of \Framework\Hunk\Router\Service\Router
$helper = Loader::service('Transform', 'Helper');
// returns instance of \Framework\Hunk\Transform\Service\Helper
Что я пробовал до сих пор без везения:
<?php
namespace PHPSTORM_META {
/** @noinspection PhpUnusedLocalVariableInspection */
/** @noinspection PhpIllegalArrayKeyTypeInspection */
/** @noinspection PhpLanguageLevelInspection */
$STATIC_METHOD_TYPES = [
\Framework\Loader::model('Transform', '') => [
'' = '@',
'Product' instanceof \Framework\Base\Model,
'Asset' instanceof \Framework\Hunk\Transform\Model\Asset,
'Step' instanceof \Framework\Base\Model,
'Stage' instanceof \Framework\Base\Model,
],
\Framework\Loader::model('Hansel', '') => [
'' = '@',
'User' instanceof \Framework\Base\Model,
],
\Framework\Loader::service('Transform', '') => [
'' = '@',
'Helper' instanceof \Framework\Hunk\Transform\Service\Helper,
],
\Framework\Loader::service('Router', '') => [
'' = '@',
'Router' instanceof \Framework\Hunk\Router\Service\Router,
],
];
}
Как я могу заставить PhpStorm распознавать несколько аргументов для фабрик в метафайле, чтобы он мог правильно выполнять автозаполнение и поиск объявлений?
Я просмотрел метадокументы phpstorm, но они не кажутся очень глубокими.