Dwoo / codeigniter: есть ли способ назначить данные из php шаблонам dwoo vars INSIDE?
Чистым эквивалентом будет:
$dwoo->output('DwooTest/index', array('assignedVar' => 'Hello'));
(Я на самом деле использую его с codeigniter - с библиотекой Фила Стерджена):
$this->dwooParser->parse('DwooTest/index', array('assignedVar' => 'Hello'));
затем внутри index.php
{$assignedVar} //outputs 'Hello'
<?php
$localVar = 'LocalVar';
?>
{$localVar} //output: error
Есть ли способ передать данные из php внутри шаблона в dwoo var?
Я использую это потому, что у меня есть представление, которое требует некоторой предварительной обработки (это своего рода расширенное представление, поэтому я не хочу помещать обработку каждый раз внутри контроллера), внутри index.php у меня есть
require 'index.h.php' //(notation inspired from c++ header files)
В соответствии с приведенным выше примером, index.h.php будет обрабатывать $assignVar и помещать данные в $localVar, тогда отображение данных будет происходить внутри шаблона index.php.
(Также на дополнительном примечании, где документация для этой вещи Dwoo... Я имею в виду, что wiki... это так?)
1 ответ
Эти локальные переменные сохраняются во внутренней переменной объекта Dwoo во время выполнения шаблона. Фактический код шаблона выполняется в контексте объекта Dwoo, поэтому у вас есть доступ к его методам из php, используя $this.
В этом случае вы хотите использовать метод assignInScope($val, $scope), который назначит его так, например:
<?php $this->assignInScope('Hello', 'localVar'); ?>
{$localVar} // outputs Hello
Вы также можете читать с него с помощью readVar ($ name), то есть:
<?php echo $this->readVar('localVar'); ?> // outputs Hello again