У меня есть следующий код в приложении от Silex:
$uknownObj->unkownRef
$uknownObj
будучи контейнером для инъекций зависимости.
я знаю это unkownRef
например MyCoolObj
,
Теперь, как я могу сказать IntelliJ / PhpStorm, чтобы он помог мне с автозаполнением этого объекта?
Просто назначьте unkownRef
к переменной и предоставить аннотацию, как это.
/** @var MyCoolObj $obj */
$obj = $uknownObj->unkownRef;
Вы можете использовать комментарии phpdoc в соответствии с предложением xmoex или указать тип с instanceof
:
Вы можете использовать phpdoc в классе контейнера, вот что я использую с Slim Framework:
/**
* @property-read \Monolog\Logger logger
* @property-read \Slim\Views\Twig view
* @property-read \PDO db
*/
class Container extends PimpleContainer implements ContainerInterface
{
}
Я просто решил это, создав просто _ide_autocomplete.php
файл в корне проекта, где я только что создал фиктивный класс со всем ключом slim container в качестве свойства.
Затем в моих маршрутах, в начале я просто поместил phpblock, как это
/** @var Dummy $this */
Мои исходники — статьи в https://blog.shaharia.com/slim-php-framework-phpstorm-ide-autocompletion-solution/