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