浅谈vqmod

来源:互联网 发布:软件编程专业就业方向 编辑:程序博客网 时间:2024/06/06 14:08

"vQmod™"(又称为虚拟快速Mod)是一個覆盖系统的设计,可以在不修改系统文件的情况下,对原系统的功能做任意更改,这样做的一个很大的好处是新系统不会因为二次开发而不能把系统升级到最新版本。大概原理就是把原系统中的所有include(_once)、require(_once)中的文件路径替换成VQMod::modCheck(),参数就是该文件路径,该函数会根据用户定义的规则,把相关文件修改之后存一份缓存,然后返回缓存文件的路径,这样就可以实现对原系统的修改。

具体的详细资料,大家可以参考官网 https://github.com/vqmod/vqmod/wiki/About-vQmod#about-vqmod
从代码层面来看,首先是执行了VQMod::bootup(),这个函数会扫描vqmod/xml文件夹下所有的xml文件,解析xml文件后放入静态属性$_mods中。而VQMod::modCheck这个函数根据文件路径,生成一个缓存文件的路径,如果该缓存文件存在并且未过期就直接返回缓存文件路径,否则检查静态属性$_mods中是否存在对该文件修改的规则,存在就根据规则生成新文件存入缓存文件,并返回缓存文件路径,否则返回原文件路径。

vqmod需要dom扩展的支持,用于解析xml文件,如果一个php运行环境不支持dom扩展,则vqmod就不能使用。个人认为这个完全可以用php或json来替代,使用php可以直接用一个return array()来返回需要的信息;而使用json的唯一问题是引号,会导致规则编写不方便。这个也比较容易解决,可以做一个vqmod规则生成页面,用工具来生成对应的规则文件。

因此,vQmod可在执行过程中不修改任何原本的核心文件,而对于原核心文件产生虚拟改变的效果。目前vQmod使用xml,但不排除将来也采用其他的文件格式。
0 0
原创粉丝点击