加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php利用反射实现插件机制的方法

发布时间:2020-12-12 20:44:55 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解php利用反射实现插件机制的方法。供大家参考研究。具体实现方法如下: 代码如下: implementsInterface('Iplugin')) { $plugins[] = $reflectionClass; } } return $plugins; } function computeMenu(){ $menu = array(); foreach (findP

本篇章节讲解php利用反射实现插件机制的方法。分享给大家供大家参考。具体实现方法如下:

代码如下:
implementsInterface('Iplugin')) { $plugins[] = $reflectionClass; } } return $plugins; } function computeMenu(){ $menu = array(); foreach (findPlugins() as $plugin){ if ($plugin->hasMethod('getMenuItems')) { $reflectionMethod = $plugin->getMethod('getMenuItems'); if ($reflectionMethod->isStatic()) { $items = $reflectionMethod->invoke(null); } else { $pluginInstance = $plugin->newInstance(); $items = $reflectionMethod->invoke($pluginInstance); } $menu = array_merge($menu,$items); } } return $menu; } function computeArticles(){ $articles = array(); foreach (findPlugins() as $plugin){ if ($plugin->hasMethod('getArticles')) { $reflectionMethod = $plugin->getMethod('getArticles'); if ($reflectionMethod->isStatic()) { $items = $reflectionMethod->invoke(null); } else { $pluginInstance = $plugin->newInstance(); $items = $reflectionMethod->invoke($pluginInstance); } $articles = array_merge($articles,$items); } } return $articles; } class MycoolPugin implements Iplugin { public static function getName(){ return 'MycoolPlugin'; } public static function getMenuItems(){ return array(array('description'=>'MycoolPlugin','link'=>'/MyCoolPlugin')); } public static function getArticles(){ return array(array('path'=>'/MycoolPlugin','title'=>'This is a really cool article','text'=> 'xxxxxxxxx' )); } } $menu = computeMenu(); $articles = computeArticles(); print_r($menu); print_r($articles);

希望本文所述对大家的php程序设计有所帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读