设计一个支持overrides、file_exists()和includes的系统


Designing a system that supports overrides, file_exists() and includes?

我的信息系统中有一个非常基于模块的体系结构,它安装在数百个客户机上。更新将自动加载到这些客户端。但是,其中一些客户端具有自定义功能,我不希望为每个其他客户端添加占用空间。

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

我的第一个想法是在包含文件和类之前有一堆file_exists()检查,看看是否在overrides目录中有一个覆盖版本,但是系统加载了很多文件,这意味着每次加载页面必须有大约20到30个file_exists()检查(这也包括像CSS和JavaScript这样的文件)。

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

谢谢!

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