Запуск пользовательского представления из пользовательской модели. Зенд_возможно?

Обещай не хихикать, но у меня следующая ситуация:

Вместо использования партиалов, помощников и других подобных инструментов, которые мы уже используем, мы хотим использовать настраиваемое представление за пределами всех рамок и границ реального приложения. По сути, на данный момент нам нужно загрузить чистый HTML в переменную при определенной реакции модели. Это мартышка, и с ней может справиться практически любой, не используя клавиатуру.

Проблема заключается в том, что HTML-страницы, которые мы хотим создать, должны быть довольно обширными, и их отладка/поддержка/расширение представляют собой крушение поезда из-за inate "return $arrlglllgll;" подход. Чтобы сделать скрипт гладким и гуманным, мы бы очень хотели использовать стиль .phtml с чистым html, смешанным с php-инъекциями, без фактического рендеринга.

Возможно ли это и как?

в настоящее время я борюсь с

$mailView = new Zend_View();
$mailView->setScriptPath('/Templates');
echo($mailView->render('test.php'));
die;

Где test.php — это файл, к которому я пытался добраться любыми мыслимыми средствами и взаимосвязями, но в конечном итоге каждый раз терпел неудачу из-за

 exception 'Zend_View_Exception' with message 'script 'test.php' not found in path (\library\Extras\Controller\Action\Helpers\)' in \library\Zend\View\Abstract.php:875
Stack trace: blablabla

Загрузить пользовательский вид из контроллера очень просто, просто укажите относительный путь, и все готово, но кажется, что я ничего не могу найти, если снимаю из библиотеки. Любой совет?


person John    schedule 29.07.2009    source источник
comment
Является ли /Templates вашим фактическим, абсолютным путем? Попробуйте сбросить содержимое $view->getScriptPaths() перед рендерингом и добавьте этот вывод в свой вопрос.   -  person jason    schedule 29.07.2009
comment
Массив ( [0] => \Templates\ ) По сути, это именно то, что я установил, плюс косая черта. И у меня нет проблем с вызовом представления из контроллера с помощью «../applications/views/scripts/controller/test.php».   -  person John    schedule 29.07.2009


Ответы (1)


Если кому-то интересно, это намного проще, чем я когда-либо думал...

// Set the view
$layout = new Zend_Layout();
$view = $layout->getView();

// Send inherited custom parameters
$view->params = $params;

Таким образом, вы можете использовать $view как реальное представление и загружать любой $view->helper по своему усмотрению.

Чтобы сохранить визуализированный вид, введите...

$savingParameter = $view->render('controller/subfolder/' . $page . '.phtml');

ТАДАА

person John    schedule 07.09.2009