加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php利用反射实现插件机制的技巧

发布时间:2022-07-01 15:50:21 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php利用反射实现插件机制的方法,涉及php反射机制与插件的实现技巧,需要的朋友可以参考下 本文实例讲述了php利用反射实现插件机制的方法。分享给大家供大家参考。具体实现方法如下: ?php /** foreach (get_declared_classes() as $class){
  这篇文章主要介绍了php利用反射实现插件机制的方法,涉及php反射机制与插件的实现技巧,需要的朋友可以参考下
 
  本文实例讲述了php利用反射实现插件机制的方法。分享给大家供大家参考。具体实现方法如下:
 
  <?php
  /**
       foreach (get_declared_classes() as $class){   
          $reflectionClass = new ReflectionClass($class);   
          if ($reflectionClass->implementsInterface('Iplugin')) {   
              $plugins[] = $reflectionClass;   
          }   
      }   
      return $plugins;   
                   $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;   
           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程序设计有所帮助。

(编辑:PHP编程网 - 黄冈站长网)

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

    热点阅读