Я хочу определить, существует ли класс и реализует ли он интерфейс. Оба из нижеприведенных должны работать. Что должно быть предпочтительным и почему?
// проверить, существует ли класс, создать его экземпляр и выяснить, реализует ли он аннотацию
if(class_exists($classname)){
$tmp=new $classname;
if($obj instanceof Annotation) {//do something}
}
// проверяем, существует ли класс, отражаем его и выясняем, реализует ли он аннотацию
if(class_exists($classname)){
$r=new new ReflectionClass($classname);
if($r->implementsInterface('Annotation)) {//do something}
}