Как сделать скрипт Zend_View из строки вместо файла - PullRequest
2 голосов
/ 09 января 2012

В настоящее время у меня есть CMS, которая записывает некоторые страницы в таблицу базы данных.Для их рендеринга с Zend_View у меня есть метод, который записывает их в файловую систему.Я бы хотел пропустить этот процесс и отобразить шаблоны непосредственно из базы данных.

Например:

<?php
$template = '<html>
<head>
<title>Test</title>
</head>
<body>
<?php echo $this->test ?>
</body>
</html>';

$view = new Zend_View();
$view->test = 'This is a test';
echo $view->render($template);
?>

1 Ответ

4 голосов
/ 09 января 2012

Zend_View расширяет Zend_View_Abstract и объявляет конкретную реализацию метода _run() (который вызывается render()).sic:

protected function _run()
{
    include func_get_arg(0);
}

Я думаю, что вы в основном хотите:

class Zend_View_String extends Zend_View // or maybe // extends Zend_View_Abstract
{
    protected function _run()
    {
        $php = func_get_arg(0);

        eval(' ?>'. $php. '<?php ');
    }
}

Но это может быть медленнее, чем записать его в файл и вызвать include.Вместо этого вы можете поместить свой дамп-код в свой собственный метод _run.Это оставлено читателю в качестве упражнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...