NetBeans. Завершение кода. PHP

#php #netbeans #code-completion

#php #netbeans #завершение кода

Вопрос:

Я использую что-то вроде этого:

 index.php(entryPoint)

<?php
include 'view.php';
$view= new View;

$view->a=5;
$view->render('index.tpl');
  

 view.php
<?

clas View{    
   public function render($file){     
        include 'templates/'.$file;
   }
}
  

 templates/index.tpl


<?php /* @var $this View */?>
//some html
<?php $this->| ?> /*I want to see "a" incode completion here
                  How it is possible?
  

Я знаю, что что-то подобное разрешено в плагине ZendFramework
Может быть, я могу добавить это в свой фреймворк?
какой-нибудь другой html */

UPD: Я хочу видеть свойства, которые я использовал в index.php завершении кода в index.tpl Свойствах, которые не должны быть перечислены в view php как свойства

Комментарии:

1. Я не понимаю, о чем спрашивают. Пожалуйста, переформулируйте фразу в вопрос вместо утверждения.

2. Я думаю, он спрашивает, может ли он заставить code completion распознать $ this как принадлежащий классу View и открыть список параметров завершения, когда он начнет его вводить?

Ответ №1:

Это не сработает:

 <?php /* @var $this Viewer */?>
  

И для этого есть несколько причин. Во-первых, docblocks начинаются с /** не просто /* . Также вы объявляете, $this что это экземпляр Viewer , но фактическое имя класса является View . Это не соответствует, поэтому вы не получите никакого завершения кода (или, по крайней мере, не ожидаемого завершения кода).
Итак, вы должны использовать:

 <?php /** @var $this View */?>
  

Кроме того, если вы хотите получить доступ к свойствам, вы должны объявить их. Это единственный способ, которым Netbeans узнает о свойствах.

Я не проверял, действительно ли будет работать указание класса для $this в docblock.

Комментарии:

1. Но /* тоже работает. (Я только сейчас вижу метод просмотра) Но мой вопрос был таков: могу ли я просмотреть свойства, которые я использую в a.php и не объявлять в view.php смотрите в моем шаблоне

2. Вы не можете, потому что Netbeans не может определить, какие свойства существуют, если вы их не объявите.

3. Но, например, в плагине для ZendFramework (я думаю, что в плагинах для Symphony тоже) можно использовать те свойства шаблона view in viewer, которые использовались в этом контроллере страницы. Я понимаю, что это не разрешено для меня в NetBeans по умолчанию, но, может быть, я могу как-то его расширить?

4. Я не знаю, работает ли завершение кода в views с ZF или Symphony (я не использую ни то, ни другое), поэтому я не знаю, как это будет работать там.