Поддержка автозаполнения 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/

Другие вопросы по тегам