В toString()
методе Zend_View_Helper_HeadScript
я заметил цикл foreach()
на $this
, поэтому я попробовал это, и это сработало. Вот написанное мной расширение HeadScript, иллюстрирующее решение:
class My_View_Helper_HeadScript extends Zend_View_Helper_HeadScript
{
public function toString($indent = null)
{
$files = array();
foreach ($this as $key => $item) {
if (!empty($item->attributes)
&& array_key_exists('src', $item->attributes)
&& ('scripts' == substr($item->attributes['src'], 1, 7))) {
$files[] = $item->attributes['src'];
unset($this[$key]);
}
}
if (0 < count($files)) {
$this->prependFile('/combo.php?type=scripts&files=' . implode(',', $files));
}
return parent::toString($indent);
}
}
В Bootstrap.php
следующие строки указывают на моих помощников:
$this->bootstrap('view');
$view = $this->getResource('view');
$view->addHelperPath('My/View/Helper', 'My_View_Helper');
В моем макете у меня есть эта строка:
<?php echo $this->headScript(); ?>
Если мое решение каким-либо образом неясно, дайте мне знать, и я уточню его для уточнения.