我的信息系统中有一个非常基于模块的体系结构,它安装在数百个客户机上。更新将自动加载到这些客户端。但是,其中一些客户端具有自定义功能,我不希望为每个其他客户端添加占用空间。
因此,我想在系统中实现覆盖,以便某些模块的行为与主系统略有不同。
我的第一个想法是在包含文件和类之前有一堆file_exists()检查,看看是否在overrides目录中有一个覆盖版本,但是系统加载了很多文件,这意味着每次加载页面必须有大约20到30个file_exists()检查(这也包括像CSS和JavaScript这样的文件)。
这是否合适,或者是否有更好的方法来设计一个信息系统,99%的客户端在一个代码库上,1%的客户端在某些功能上使用覆盖?
谢谢!
我同意user973254和Michael Mior的意见,并认为您应该将它们结合起来:在安装时,执行覆盖检查,然后使用该信息生成配置脚本-只需存储$modules['ModuleName'] = '/File/Path'
的数组。然后,无论何时加载模块,调用include $modules['ModuleName'];