eclipse — Почему Zend Studio не может вызвать меню автозаполнения объектов, когда я использую массивы PHP?

Кажется, у меня возникли проблемы с моей IDE или, возможно, с моим кодом. Моя IDE (ZendStudio 11, построенная на Eclipse) не дает мне методов автоматического предложения объекта, когда я помещаю этот объект в конструкцию собственного массива PHP.

Как вы увидите ниже, автоматическое предложение работы для вещей, которые не имеют $this-> (объект доступа) и не иметь [$index] (метод доступа к массиву), но потерпеть поражение работать после того, как эти средства доступа присутствуют.

Рассмотрим код ниже

Смотрите комментарии для проблемных областей

namespace Name\Space;

class PointArrayManager
{

private $points;

public function __construct()
{
$point = new Point();
$point-> //brings up auto-complete for Point()

$points[0] = new Point();
$points[0]-> //brings up auto-complete for Point()

$this->points[0] = new Point();
$this->points[0]-> //FAILS to bring up auto-complete
}
}

Что вызывает эту проблему и могу ли я улучшить мой код, чтобы в любом случае иметь автозаполнение?

0

Решение

Ваша IDE не может знать, что ваш $points Свойство представляет собой массив объектов Point. Вам придется оказать ему некоторую помощь.

Способ сделать это — прокомментировать ваш код, по крайней мере, вам нужно будет прокомментировать объявление $points переменная, как это: —

/** @var Point[] $points */
private $points;

Я не использую Zend Studio, но это работает в PHPStorm, поэтому я думаю, что это работает и в Zend Studio.

Комментирование вашего кода таким образом является хорошей практикой и помогает вашей IDE понять, что вы имеете в виду. Это также помогает с генерацией документации. Большинство PHP IDE используют PHPDocumentor для комментариев, поэтому руководство стоит прочитать.

http://www.phpdoc.org/

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]