<?php class ReflectionClassEx extends ReflectionClass { public $bla; function getMethodNames() { $res = array(); foreach ($this->getMethods() as $m) { $res[] = $m->class . '::' . $m->name; } return $res; } } $r = new ReflectionClassEx('ReflectionClassEx'); $exp = array('UMLClass::__clone', 'UMLClass::export', 'UMLClass::__construct', 'UMLClass::__toString', 'UMLClass::getName', 'UMLClass::isInternal', 'UMLClass::isUserDefined', 'UMLClass::isInstantiable', 'UMLClass::getFileName', 'UMLClass::getStartLine', 'UMLClass::getEndLine', 'UMLClass::getDocComment', 'UMLClass::getConstructor', 'UMLClass::getMethod', 'UMLClass::getMethods', 'UMLClass::getProperty', 'UMLClass::getProperties', 'UMLClass::getConstants', 'UMLClass::getConstant', 'UMLClass::getInterfaces', 'UMLClass::isInterface', 'UMLClass::isAbstract', 'UMLClass::isFinal', 'UMLClass::getModifiers', 'UMLClass::isInstance', 'UMLClass::newInstance', 'UMLClass::getParentClass', 'UMLClass::isSubclassOf', 'UMLClass::getStaticProperties', 'UMLClass::getDefaultProperties', 'UMLClass::isIterateable', 'UMLClass::implementsInterface', 'UMLClass::getExtension', 'UMLClass::getExtensionName'); $miss = array(); $res = $r->getMethodNames(); foreach ($exp as $m) { if (!in_array($m, $exp)) { $miss[] = $m; } } var_dump($miss); $props = array_keys(get_class_vars('ReflectionClassEx')); sort($props); var_dump($props); var_dump($r->name); ?> ===DONE===
/** * Add Class to REST * * @param string $classname * @param string $namespace * @return bool */ public function AddClass($classname, $args = array()) { $namespace = ""; if (class_exists($classname)) { $reflectionClass = new ReflectionClassEx($classname); $methods = $reflectionClass->getPublicMethods(); foreach ($methods as $method) { if ($namespace == "") { $this->Methods[$method->getName()] = $method; } else { $this->Methods[$namespace][$method->getName()] = $method; } } } else { Core::RaiseWarning("Class '{$classname}' not found"); return false; } }