您好我正在使用symfony2框架来建立一个网站。我在PHP中定义了一个接口,如:
interface AdminPluginInterface {
public function getName();
}
现在我想知道所有可以通过Symfony2 UniversalClassLoader加载的类来实现我的界面,使用它们如下:
foreach ($classes as $class)
{
$class->getName();
}
感谢您的回答!
答案 0 :(得分:2)
尝试使用is_a()
功能:
foreach ($classes as $class)
{
$classname = $class->getName();
var_dump(is_a($classname,'AdminPluginInterface'));
}
有关详细信息,请查看:
答案 1 :(得分:2)
由于类只有在使用时才会自动加载,因此您无法列出源代码中的所有类。您只能获取已调用get_declared_classes
的已使用的类。
一种解决方案是指定一个plugins目录并扫描它以获取类文件,导入它们然后使用class_implements
检查这些类是否实现了您的接口
查看this question answers以获取一些代码示例,以扫描您的接口是否由某个声明的类
答案 2 :(得分:-1)