我正在编写一个使用模块化结构的 PHP 应用程序。模块基本上是文件夹名称,这些文件夹包含 PHP 文件。
它看起来像这样:
/modules
/module1
/module2
/module3
我的 PHP 应用程序读取文件夹的内容并将modules
文件夹名称保存到我数据库中的表中。我的modules
表如下所示:
id | module | active | order
1 | module1 | 1 | 2
2 | module2 | 0 | 1
3 | module3 | 1 | 3
在modules
读取文件夹并将文件夹名称保存到数据库后,我再次从表中获取行。这样我就可以很容易地看到哪些模块处于活动状态,以及我必须以什么顺序显示它们。
这种方法的问题是每次访问页面时我都必须执行上述所有操作。因为系统不知道何时从文件夹module
中添加或删除了a。module
因此,通过“读取文件夹/将其保存到数据库/并再次读取数据库”似乎可以提供大多数最新版本。但我可以想象这种方法效率低下。我认为这可以做得更好。
我想出了一个解决方案。但我仍然不认为这是最好的解决方案。
解决方案 1
当用户访问该站点时,请执行上述所有操作。读取modules
文件夹,将文件夹名称保存到表中(先清除表后),然后从表中获取行并将其存储在session
. 当用户浏览网站时,我可以简单地遍历session
.
缺点:删除/添加的模块仅在浏览器关闭并重新打开时可见。
改进?
我敢肯定有一种更优雅的方式来做到这一点。有人有什么想法吗?