Возможно, вы сможете сделать что-то вроде
protected function _generateJavaScript()
{
if (!isset($this->view->scriptGenerated))
{
// generate the script, then...
$this->view->scriptGenerated = true;
}
}
, поскольку объекты PHP могут иметь "дополнительные" свойства.
Вы, очевидно, захотите выбрать лучшее имя, которое выиграетСтолкновение, если у вас есть несколько сценариев, использующих один и тот же шаблон.
В качестве альтернативы, вы можете иметь сценарий в файле.Похоже, appendFile
не будет включать файл сценария более одного раза.Я не вижу сразу такой защиты для специальных сценариев.
protected function _generateJavaScript()
{
$this->view->headScript()->appendFile('path/to/script.js');
}