Запуск пользовательского представления из пользовательской модели. Zend_possible? - PullRequest
3 голосов
/ 29 июля 2009

Вы должны пообещать не хихикать, но моя ситуация следующая:

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

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

Это возможно и как?

Я сейчас борюсь с

$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

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

1 Ответ

2 голосов
/ 07 сентября 2009

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

// 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');

TADAA

...