【发布时间】:2013-02-19 19:45:55
【问题描述】:
这让我发疯了(喝大量的咖啡和通宵工作无济于事)我想从我在应用程序中的任何位置访问课程。我在我的索引页面中实例化类(它会自动加载我的库/类)但似乎我无法获得对它的全局访问。这是我的索引页:
function __autoload($class)
{
require LIBS . $class .'.php';
}
$Core = new Core($server, $user, $pass, $db);
这会完美地自动加载我的 Lib/类,然后我实例化我的核心(这是在我的 Lib/core.php 中自动加载的)
然后在我的核心中创建通常的数据库连接,获取并检查 URL 以及实例化几个类(自动加载的类)的位置我创建一个 __construct,这是我要实例化模板的位置班级。我希望有全局访问权限来访问我的任何控制器和模型中的类。
class Core {
function __construct(DATABASE VARIABLES IN HERE)
{
$this->Template = new Template();
}
}
好的,我想我可以通过在父模型和父控制器中执行以下操作来访问模板对象:
class Controller
{
public $Core;
function __construct()
{
global $Core;
$this->Core = &$Core;
}
}
控制器是我所有控制器的父级扩展,因此我假设我可以只写$this->Core->Template->get_data(); 来访问模板方法?这似乎会引发错误。
我确定这一定是我忽略的一些简单的事情,如果有人能帮我一把,那就太好了。这个问题快把我逼疯了。
在我的 __construct 中我的子控制器中还有一个旁注,我构造了父 parent::_construct();
错误似乎是Notice: Trying to get property of non-object 和Fatal error: Call to a member function get_data() on a non-object。
【问题讨论】:
-
为什么不直接将
$Core作为参数传递给构造函数?
标签: php