【问题标题】:use reflection get class name and method name使用反射获取类名和方法名
【发布时间】:2014-10-14 06:57:18
【问题描述】:

在我的网站中有一个名为 plugins 的文件夹。我想获取该文件夹中使用的所有类和每个类的方法。 但我不知道如何使用反射从该文件夹中获取方法名和类名?我应该在哪里为其编写代码?

【问题讨论】:

  • 你是什么意思 as used - 已经加载到应用程序中?
  • 插件floder中定义的类
  • 您应该使用活动插件维护文件或数据库表。
  • 这是不可能的...我想知道插件的方法而不是插件的名称。我需要使用反射来获取方法名称

标签: php reflection


【解决方案1】:

方法一:你可以使用自动加载器来加载类,如果资源计数不定,你可以将所有类收集到一个可迭代的数组中。

方法2:您可以使用get_declared_classes() 方法来获取所有声明的类并匹配指向您的插件的正则表达式。

毕竟它使用反射。

<?php
    foreach ($declaredClasses as $key => $classWithNamespace) {
        $class = new ReflectionClass($classWithNamespace);
        $methods = $class->getMethods();
        foreach ($methods as $method) {
           //analyze your methods
        }

}

但是,如果您不在产品环境中缓存这些东西。会有很多性能问题,反射不是便宜的成本!

【讨论】:

    猜你喜欢
    • 2010-10-03
    • 2011-03-06
    • 2012-10-04
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多