对于我的网站/应用程序,我希望在运行时存储在内存中之类的“应用程序首选项”。
这些基本上是通用的(相当长期的设置),多个脚本在多个地方使用。
示例:可以为网站上传的文件的最大大小。
我想到了几种解决方案,但这些解决方案都不能完全满足需求:
仅在数据库中使用应用程序首选项 - >缺点是数据库需要基本上一直查询相同的数据(例如,在一个脚本中多次)。
正常变量/数组 - >据我所知,这些是针对每个脚本实例化的,对于每个用户来说都会占用大量内存
会话 - >再次,这是为每个用户创建的,因此再次消耗更多的服务器资源(因为所有用户的数据都相同)
底线是我想在内存中使用首选项(用于快速访问),但不希望它们多次实例化(以优化内存消耗)。
如果有人在此之前解决这个问题,我将不胜感激任何意见或建议。
答案 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,其中包含两个字段,键和值。
我第一次通过密钥查询我需要的设置,然后将密钥和值存储在数组中。
每个设置只能使用一个查询,但您可以在所有页面的顶部执行一个功能,只需一个查询和一个循环。