Как явно задать тип переменной PHP в PhpStorm?

Столкнулся с неприятным фактом, в отличие от C#, в PHP царит нестрогая типизация. При разработке использую IDE PhpStorm, проблема в том, что некоторые функции не возвращают переменную явного типа. Вот одна из таких функций (привет, Symfony2):

$server = $em->getRepository('MyBundle:Server')->findOneById($id); // $server является неизвестным типом со стороны PhpStorm


Понятно, что надо явно указать тип. Подход с явным приведением не удается - PhpStorm показывает ошибку синтаксиса:

$server = (Server)$em->getRepository('MyBundle:Server')->findOneById($id); // ошибка синтаксиса


И в итоге имеем отсутствие поддержки дополнения кода а-ля intellisense (и прочих нужных фич) для таких, не имеющих строго определенного типа, переменных.
  • Вопрос задан
  • 5386 просмотров
Решения вопроса 1
disc
@disc
веб-разработчик
Если проблема только в дополнении кода, используйте phpdoc
/** @var Server $server */
$server = $em->getRepository('MyBundle:Server')->findOneById($id);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Scat
@Scat
Так же можно настроить meta инструкцию на фабрику
confluence.jetbrains.com/display/PhpStorm/PhpStorm...

После написания .phpstorm.meta.php файла обязательно перезапустите шторм (в старых версиях без перезапуска не работает)
Ответ написан
Комментировать
а к чему вы явно приводите? к Server? не видел такого в документации.
А вот phpdoc в этом деле поможет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы