我正在编写一个使用模块化结构的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
文件夹中添加或删除了module
。因此,通过“读取文件夹/将其保存到DB /并再次读取数据库”似乎可以提供最新版本。但我可以想象这种方法效率低下。我认为这可以做得更好。
我想出了一个解决方案。但我仍然认为这不是最佳解决方案。
当用户访问该网站时,请执行以上所有操作。阅读modules
文件夹,将文件夹名称保存到表中(先清除表格后),然后从表格中获取行并将其存储在session
中。当用户浏览网站时,我可以简单地遍历session
。
缺点:删除/添加的模块仅在浏览器关闭并重新打开时可见。
我确信有更优雅的方式来做到这一点。任何想法?
答案 0 :(得分:3)
流程应如下:
普通用户请求页面时
我认为这是最有效的方式。
免责声明:恕我直言,这是浪费时间。你最好学习一个真正的框架,也许是像CakePHP这样的MVC,或者像Drupal,Joomla或Wordpress这样广泛使用的CMS之一。通过这种方式,您将拥有1. 正常工作系统2. 安全系统3.可重复使用的知识。即使是出于学习目的,也无需重新发明轮子。你最终会通过学习其他人的成功(和失败)来加快这个过程。