Emlog531博客插件的实现原理

emlog的插件功能是通过挂载点和挂载函数实现的。程序在模板中预设许多挂载点用于让插件函数进行挂载。然后当页面执行到对应位置时会自动执行对应的插件函数,实现插件功能。

上面这段代码中,是用于加载所有插件的实现函数所在的文件的。这个路径被保存到了配置表中,当然这里使用的是缓存中的数据。这里的$emhooks是一个全局二维数组变量,保存的是各个挂载点中的插件函数名字。这段代码的目的是循环加载插件函数所在位置的文件,当后面需要执行对应函数时就不会出现找不到函数这种错误错误。可以看出来插件函数是公用的,你甚至可以在你的插件中调用别人的功能。

要实现插件功能,那么就需要先将自己的实现函数赋值到上面说到全局数组中,addAction这个函数就是用来完成这个操作的。第一个参数是挂载点,第二个参数是需要挂载的函数。可以看到重名函数是不能挂载上去的。这个函数会在第一图中执行包含文件操作时时被执行。这个步骤中插件功能不会执行,只做$emhooks的赋值操作。

最终实现插件功能的是doAction函数,这个函数就是文章开始时说到的挂载点。当代码执行到挂载点时,这个函数开始执行,执行绑定到挂载点上面的插件函数。最终实现博客程序的插件功能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,037评论 25 709
  • 昨日流沙群中吵翻,皆因有一神人发问。画可用来作甚?问题提得哲学。今早随手一涂,也想找个答案。谋来思去半天,想了一个...
    瘦人碗子阅读 1,738评论 1 1
  • 希望 我们不是因为看到希望才去坚持,而是坚持下去才能看到希望。 距离 距离只有在得不到的时候才有价值。 玩笑 你知...
    幻梦邪魂阅读 1,355评论 0 0

友情链接更多精彩内容