如何在PHP中的应用程序范围中保存数据?

时间:2010-09-14 22:14:37

标签: php scope save

我是一名Java和C#开发人员,我承认,我在PHP方面并不是那么好。

我需要将一个对象存储在应用程序范围内,只要应用程序本身正在运行它就会存在。我无法将其保存在Session中,因为它过期了,我也无法将其序列化为磁盘。

PHP中有类似C#Application对象吗?

1 个答案:

答案 0 :(得分:18)

2018编辑:时间已经对APC很友善,特别是因为PHP 7包含对Zend Optimizer +的捆绑支持,这在很大程度上是相同的(除了密钥 - 商店)。目前,密钥库方面已分为the APCu project

但是,在2018年,首选的密钥库是Redis。有关详细信息,请参阅ext-redis project


PHP的应用范围很广。它被称为APC (Alternative PHP Cache)

如果数据符合以下条件,则应在APC中缓存数据:

  1. 这不是特定于用户会话的(如果是,请放入$ _SESSION [])
  2. 这不是真正的长期(如果是这样,请使用文件系统)
  3. 仅在一台PHP服务器上需要(如果没有,请考虑使用memcached
  4. 您希望它立即可用于您网站的每个页面,甚至是其他(非关联)PHP程序。
  5. 您不介意存储在其中的所有数据在Apache重新加载/重新启动时都会丢失。
  6. 您希望数据访问速度远远快于基于文件,memcached或(特别是)基于数据库的访问。
  7. 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);
    }