如何在PHP中保存应用程序作用域中的数据?

如何在PHP中保存应用程序作用域中的数据?,php,scope,save,Php,Scope,Save,我是一名Java和C的开发人员,我承认,我对PHP不太在行 我需要在应用程序作用域中存储一个对象,只要应用程序本身在运行,该对象就存在。我无法将其保存在会话中,因为它已过期,而且我无法将其序列化到磁盘 PHP中是否有类似于C#应用程序对象的东西?2018年编辑:时间对APC并不友好,特别是因为PHP7包括对Zend Optimizer+的捆绑支持,Zend Optimizer+的功能基本相同(除了密钥存储)。这些天来,重点商店方面已经被转移到了 然而,在2018年,首选的密钥存储是。有关详细信息

我是一名Java和C的开发人员,我承认,我对PHP不太在行

我需要在应用程序作用域中存储一个对象,只要应用程序本身在运行,该对象就存在。我无法将其保存在会话中,因为它已过期,而且我无法将其序列化到磁盘


PHP中是否有类似于C#
应用程序
对象的东西?

2018年编辑:时间对APC并不友好,特别是因为PHP7包括对Zend Optimizer+的捆绑支持,Zend Optimizer+的功能基本相同(除了密钥存储)。这些天来,重点商店方面已经被转移到了

然而,在2018年,首选的密钥存储是。有关详细信息,请参阅


PHP有各种各样的应用范围。它叫

如果数据满足以下条件,则应将其缓存在APC中:

  • 它不是特定于用户会话的(如果是,则放入$\u会话[])
  • 它实际上不是长期的(如果是,请使用文件系统)
  • 它只需要在一个PHP服务器上(如果不是,考虑使用)
  • 您希望它立即可用于站点的每个页面,甚至其他(非关联的)PHP程序
  • 您不介意在Apache重新加载/重新启动时,其中存储的所有数据都会丢失
  • 您希望数据访问速度远快于基于文件、memcached或(尤其是)基于数据库的访问速度
  • APC已经安装在很多主机上,但是请按照前面提到的指南安装到您的机器上。然后你可以这样做:

    if (apc_exists('app:app_level_data') !== false)
    {
        $data = apc_fetch('app:app_level_data');
    }
    else
    {
        $data = getFromDB('foo');
        apc_store('app:app_level_data', $data);
    }
    

    请注意,与Java(可能还有C#)不同,PHP代码并不存在于页面请求之外。您将不得不手动存储它,并在每个页面的某个位置检索它——然而,这很容易放在您的框架中,以使它“始终可用”。@daVe,除了它不可用之外。现在是:-)