加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在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; ?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读