在PHP中呈现视图
发布时间:2020-12-13 13:01:39 所属栏目:PHP教程 来源:网络整理
导读:我正在编写自己的MVC框架并且已经进入了视图渲染器.我将控制器中的变量设置为View对象,然后通过.phtml脚本中的echo $this- myvar访问变量. 在我的default.phtml中,我调用方法$this- content()来输出viewscript. 这就是我现在这样做的方式.这是一个正确的方法
我正在编写自己的MVC框架并且已经进入了视图渲染器.我将控制器中的变量设置为View对象,然后通过.phtml脚本中的echo $this-> myvar访问变量.
在我的default.phtml中,我调用方法$this-> content()来输出viewscript. 这就是我现在这样做的方式.这是一个正确的方法吗? class View extends Object { protected $_front; public function __construct(Front $front) { $this->_front = $front; } public function render() { ob_start(); require APPLICATION_PATH . '/layouts/default.phtml' ; ob_end_flush(); } public function content() { require APPLICATION_PATH . '/views/' . $this->_front->getControllerName() . '/' . $this->_front->getActionName() . '.phtml' ; } }
这是我如何做到的一个例子:
<?php class View { private $data = array(); private $render = FALSE; public function __construct($template) { try { $file = ROOT . '/templates/' . strtolower($template) . '.php'; if (file_exists($file)) { $this->render = $file; } else { throw new customException('Template ' . $template . ' not found!'); } } catch (customException $e) { echo $e->errorMessage(); } } public function assign($variable,$value) { $this->data[$variable] = $value; } public function __destruct() { extract($this->data); include($this->render); } } ?> 我使用我的控制器中的assign函数来分配变量,并在析构函数中提取该数组以使它们在视图中成为局部变量. 如果你愿意,请随意使用它,我希望它能让你知道如何做到这一点 这是一个完整的例子: class Something extends Controller { public function index () { $view = new view('templatefile'); $view->assign('variablename','variable content'); } } 并在您的视图文件中: <?php echo $variablename; ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |