joomla插件实现原理是,使用观察者模式,逐一通知每个插件响应所注册的事件。对于权限验证模块,插件之间为或者的关系。假如
你开启了三个验证插件,那么只要有一个插件验证成功,那么返回的结果必然是验证通过。
插件的注册:插件注册,实际上是在数据库中插入一条记录,当被观察者发生某个事件后,观察者会去数据库中读取注册的插件,按照规则去通知插件。
我个人认为,插件之间的关系应该是可以设置的,这点没有去验证。如果插件返回值之间不存在任何关系的话,应该使用命令模式替代观察者模式。
以下是我写的一个验证插件。
这个插件只监听了onAuthenticate事件。