PHP包含无法访问主页上的对象

时间:2015-04-08 00:12:02

标签: php oop model-view-controller

我使用下面指定的模板引擎。虽然一切运行良好,但当我在主页面中包含变量/对象(例如index.php)时,例如(main.php),无法访问该对象。

我之所以这样做是因为在我的模板文件中,我想检查用户是否已登录,并分别显示不同的标题。

但是当我尝试打印出一个值时,我得到了错误"注意:试图获取非对象的属性"。

用户帐户和模板类都是独立的。

在我的模板文件中:

<html>
    <body>
        <?php if ($user->isLoggedIn()) { ?>
        <HEADER 1>
        <?php } else { ?>
        <HEADER 1>
        <?php } ?>
    </body>
</html>

我的模板引擎:

class Template
{
    protected $template;
    protected $variables = array();

    public function __construct($template)
    {
        $this->template = $template;
    }

    public function __get($key)
    {
        return $this->variables[$key];
    }

    public function __set($key, $value)
    {
        $this->variables[$key] = $value;
    }
    public function __toString()
    {
        extract($this->variables);
        chdir(dirname($this->template));
        ob_start();

        include basename($this->template);

        return ob_get_clean();
    }
}

的index.php

require 'global.php';

require 'templateEngine.php';

$user = new Account(); // the $user object works when I print it on the same page, but not when it's in the template file. 

$view = new Template("path/to/template.php");

$view->title = "Hello world!";
$view->description = "This is a ridiculously simple template";

echo $view;

我该怎么做才能让我的模板文件可以访问从index.php生成的$ user对象?

注意:模板引擎使用&#39;包含&#39;因此标题 - 但我可能错了。

谢谢!

0 个答案:

没有答案