private static function getDeclaredOnlyInstanceMethods($class)
{
$methods = self::getDeclaredOnlyMethods($class);
$instanceMethods = array();
foreach ($methods as $name) {
$method = new ReflectionMethod($class, $name);
if ($method->isPublic() && !$method->isStatic() && !$method->isConstructor() && !$method->isDestructor() && !$method->isAbstract()) {
$instanceMethods[] = $name;
}
}
if (empty($instanceMethods)) {
throw new Exception('There is no pubic instance method in class $class.');
}
return $instanceMethods;
}