设计一个支持覆盖的系统,file_exists()和包含?

时间:2011-10-19 20:26:57

标签: php architecture override scalability

我的信息系统中有一个非常基于模块的架构,安装在数百个客户端上。更新将自动加载到这些客户端。但是其中一些客户端具有自定义功能,我不想为其他客户端添加足迹。

因此,我想在系统中实现覆盖,以便某些模块与主系统的作用略有不同。

我的第一个想法是在包含文件和类之前进行一堆file_exists()检查,看看是否在覆盖目录中有覆盖版本,但是系统会加载很多文件,这意味着会有每页加载必须大约二十到三十个file_exists()检查(这包括CSS和JavaScript等文件)。

这是合适的还是有更好的方法来设计一个在一个代码库上拥有99%客户端的信息系统,而1%使用覆盖某些功能的信息系统?

谢谢!

1 个答案:

答案 0 :(得分:1)

我同意 user973254 Michael Mior 的评论,并认为您应该将它们合并:安装时,执行覆盖检查,然后使用信息生成配置脚本 - 只存储$modules['ModuleName'] = '/File/Path'的数组。然后,无论何时加载模块调用include $modules['ModuleName'];