我正在开发一个插件,它将有自己的插件来处理各种事件。
现在,我正在考虑使此插件添加自己的“命令”。但是我想知道如何最有效地治疗它。我有自己的命令列表,无论如何我都在本文中进行搜索。然后我应该只是触发一个DoWhatYouWant($article)
-event-还是因为无论如何我都要进行搜索(以及参数解析),也许我可以构建一个全局命令列表,然后触发一个“- ExecuteCommand($article,$cmd,$params)
”事件?听起来更好,但是然后(我认为),我必须构建此命令列表(以便我的程序知道要查找的内容),因此每个插件都必须以某种方式“宣传”它可以做什么,即它可以处理的命令-我不知道该怎么做。
还是有更好(更标准化?)的方法?
如果通过插件帮助程序导入插件
JPluginHelper::importPlugin('mycmdplugins');
然后您可以获得子插件支持的所有可用命令,例如
$cmds = JDispatcher::getInstance()->trigger('onMyAwesomeCmds');
使用$ cmds变量,您现在知道子插件支持哪些命令,并且可以为它们解析文章。那你可以做
foreach ($cmds as $cmd) {
preg_match_all("{".$cmd."*}", $article->text, $matches, PREG_SET_ORDER);
if (!empty($matches)) {
JDispatcher::getInstance()->trigger('onMyAwesome'.ucfirst($cmd), array($article, $params));
}
}
为了消除更多重复的任务,我建议其他插件将从您的plugins文件夹中扩展一个基类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句