插件机制是钩子的一个衍生,不同插件机制都有各自规定的的一套规范跟标准,
例如:
plugins目录下,每一个文件夹为一个插件;
插件中必须存在一个config/config.php文件,为这个插件的配置及描述信息;
同时该插件下,必须存在一个以.hook.php为后缀名的class类文件,该类为插件钩子触发对象。
以上,就是一套相对完整的插件机制规范了。
当然,如果我们还需要对齐进行升级的话,还可以继续定义:
如果有数据库操作,必须存在一个config/db.php文件,为数据库信息;
如果有数据库操作,必须存在一个config/mysql.sql文件,为数据库导入文件;
插件类里还必须实现一些抽象的成员函数,用于对应插件的安装、卸载、关闭操作等。
由于使用反射机制实现插件机制的代码较多,就不放在案例中的,
至于下面的练习题就是使用上面钩子机制的代码升级成插件模式。
下面提供一份小黄牛多年前不使用反射类实现插件机制的代码,让朋友们参考学习:下载。