Автозаполнение Eclipse с $ this-> test - PullRequest
2 голосов
/ 24 декабря 2010

Как мы можем иметь автозаполнение для свойства, если оно не определено в том же файле php.

например, с ZF, в контроллере мы можем сделать

$this->view->voiture = new My_Voiture();

и в представлении, у нас есть переменная $ this-> voiture, но как я могу иметь автозаполнение на нем?

я пытаюсь /* @var $this->voiture My_voiture */ и никакого результата ...

длямомент, мой ответ - сделать в представлении

/* @var $voiture My_Voiture */
$voiture = $this->voiture;

, но мне это не нравится.Тебе лучше?

1 Ответ

0 голосов
/ 29 декабря 2010

Документирование оригинальной переменной в ее оригинальном источнике - это, пожалуй, лучший путь.Все другие виды использования вашего представления в других файлах должны наследовать автозаполнение, просто документируя его в одном источнике.

Чтобы получить ожидаемое автозаполнение, я бы сделал следующее:

  • В классе My_Voiture убедитесь, что у вас есть docblocks для ваших переменных и ваших методов.Технически это не является необходимым для самого автозаполнения, но позволит всплывающим окнам автозаполнения содержать гораздо больше информации, чем просто переменные и методы.
  • В классе My_View, где $ voiture впервые объявлен (не используется), Я бы поместил @var docblock, который идентифицирует его тип как My_Voiture.Этого должно быть достаточно, чтобы любое использование его переменной $ voiture наследовало свойства My_Voiture.
  • В классе My_Controller, где $ view впервые объявлен (не используется), я бы поместил блок @var, который идентифицируетего тип как My_View.Этого должно быть достаточно, чтобы любое использование его переменной $ view наследовало свойства My_View.

Теперь, в вашем кодовом файле, где вы ожидаете автозаполнения на $ this-> view-> voiture -если в нем нет ничего, что указывает на то, что $ this является объектом My_Controller, тогда Eclipse некуда запускаться, когда он пытается идентифицировать $ this (а затем и все его свойства).Я думаю, что раньше видел некоторый код MVC, где он преобладает из-за большого количества «динамических» свойств, зависящих от «переменных переменных», таких как $$ foo.

...