使用registry.php存储对象

时间:2011-05-01 21:24:52

标签: php singleton registry

我的网站目前就是这样,

index.php

  • 包括config.php->

config.php

  • 设置变量,$ siteRegistry = Registry :: singleton();

  • 还会根据网址的含义删除网址并创建新对象,因此www.site.com/login会创建新的登录对象。

loginObject

  • 在config.php

  • 中创建
  • 创建新的loginModel

loginModel

  • 需要访问$ siteRegistry但显示以下错误,

注意:未定义的变量:第37行的F:\ Projects \ application \ models \ loginModel.php中的siteRegistry

这是第37行 -

$siteRegistry->storeObject("PDOExtender", "DBO");

我认为问题是它无法从config.php找到$ siteRegistry变量,有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

$siteRegistry = Registry::singleton();

As Registry(它可能是什么)是一个单例,不需要将这个$ siteRegistry变量用作全局变量。 实际上,您应该始终在要使用它的每个函数中调用Registry::singleton。 如果只是为了创建一个小的包装函数:

function reg() {
    return Registry::singleton();
}

单例对象的整个目的是一次只有一个对象,所以你总是可以在程序执行期间再次获取它们,而不必使用变量。