Я работаю с пользовательской фреймворк PHP и хотел бы сгенерировать для него файл .phpstorm.meta.php
.Синтаксис метафайла PhpStorm для статических методов с несколькими аргументами
Методы фабричные У меня есть имеют следующий синтаксис:
<?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 meta docs, но они, похоже, не очень углублены.