如何在PHP中存储应用程序首选项?

时间:2013-05-25 16:04:05

标签: php variables preferences

对于我的网站/应用程序,我希望在运行时存储在内存中之类的“应用程序首选项”。

这些基本上是通用的(相当长期的设置),多个脚本在多个地方使用。

示例:可以为网站上传的文件的最大大小。

我想到了几种解决方案,但这些解决方案都不能完全满足需求:

  1. 仅在数据库中使用应用程序首选项 - >缺点是数据库需要基本上一直查询相同的数据(例如,在一个脚本中多次)。

  2. 正常变量/数组 - >据我所知,这些是针对每个脚本实例化的,对于每个用户来说都会占用大量内存

  3. 会话 - >再次,这是为每个用户创建的,因此再次消耗更多的服务器资源(因为所有用户的数据都相同)

  4. 底线是我想在内存中使用首选项(用于快速访问),但不希望它们多次实例化(以优化内存消耗)。

    如果有人在此之前解决这个问题,我将不胜感激任何意见或建议。

2 个答案:

答案 0 :(得分:1)

最好的存储设置机制之一是使用php数组。根据需要使用默认设置。将其与用户保存的数组合并到另一个地方,php将使用APC opcache代码处理快速访问。

<?php

    $defautSetting = array(
        'foo' => 1,
        'baz' => false,
    );

    $usedSetting = array_merge(
        $defautSetting,
        require '/path/to/user/saved/settings.php',
    );

    var_dump($usedSetting['baz']); // true

用户设置文件。

<?php

     // /settings.php

    return array(
        'baz' => true,
    );

遵循zendframe工作等快速而优秀的工程框架。它们可以让你更好地了解这种机制。

答案 1 :(得分:0)

我用一个名为settings的表编写了一个简单的CMS,其中包含两个字段,键和值。

我第一次通过密钥查询我需要的设置,然后将密钥和值存储在数组中。

每个设置只能使用一个查询,但您可以在所有页面的顶部执行一个功能,只需一个查询和一个循环。