copist
@copist
Empower people to give

$this в шаблонизаторе PHP

Есть страница — шаблон на purePHP
Она отрисовывается путём инклуда в каком-нибудь методе класса

<?php
class SomeClass {

     public function count() { return 0; }
}

class OtherClass {

   /**
    * @var SomeClass
    */
   protected $var1;

   function __construct() {
      $this->var1 = new SomeClass;
   }

   function showCount() {
       include('showCount.phtml');
   }
}


$x = new OtherClass;
$x->showCount();

?>


В файле showCount.phtml такое содержимое
<?php

// note : $this instanceof OtherClass
echo $this->var1->count();

?>


Вопрос: Как мне помочь IDE включить Code Completition внутри файла showCount.phtml для переменной $this, которая в данном контексте является сущностью класса OtherClass?




Мой вариант такой:
<?php

/**
 * @var OtherClass
 */
$that = $this;

echo $that->var1->count(); // подсказки работают
?>
  • Вопрос задан
  • 3826 просмотров
Решения вопроса 1
EugeneOZ
@EugeneOZ
Попробуйте
@var OtherClass $this
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Так, а что не так в таком варианте, я сам таким пользуюсь.
Ответ написан
@LastDragon
Вопрос: Как мне помочь IDE включить Code Completition

Вообще зависит от IDE, Eclipse и NetBeans понимают:

/* @var $name \class\name */
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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