Prado\TComponentReflection::reflect PHP Метод

reflect() приватный Метод

private reflect ( )
    private function reflect()
    {
        $class = new \ReflectionClass($this->_className);
        $properties = array();
        $events = array();
        $methods = array();
        $isComponent = is_subclass_of($this->_className, 'TComponent') || strcasecmp($this->_className, 'TComponent') === 0;
        foreach ($class->getMethods() as $method) {
            if ($method->isPublic() || $method->isProtected()) {
                $methodName = $method->getName();
                if (!$method->isStatic() && $isComponent) {
                    if ($this->isPropertyMethod($method)) {
                        $properties[substr($methodName, 3)] = $method;
                    } else {
                        if ($this->isEventMethod($method)) {
                            $methodName[0] = 'O';
                            $events[$methodName] = $method;
                        }
                    }
                }
                if (strncmp($methodName, '__', 2) !== 0) {
                    $methods[$methodName] = $method;
                }
            }
        }
        $reserved = array();
        ksort($properties);
        foreach ($properties as $name => $method) {
            $this->_properties[$name] = array('type' => $this->determinePropertyType($method), 'readonly' => !$class->hasMethod('set' . $name), 'protected' => $method->isProtected(), 'class' => $method->getDeclaringClass()->getName(), 'comments' => $method->getDocComment());
            $reserved['get' . strtolower($name)] = 1;
            $reserved['set' . strtolower($name)] = 1;
        }
        ksort($events);
        foreach ($events as $name => $method) {
            $this->_events[$name] = array('class' => $method->getDeclaringClass()->getName(), 'protected' => $method->isProtected(), 'comments' => $method->getDocComment());
            $reserved[strtolower($name)] = 1;
        }
        ksort($methods);
        foreach ($methods as $name => $method) {
            if (!isset($reserved[strtolower($name)])) {
                $this->_methods[$name] = array('class' => $method->getDeclaringClass()->getName(), 'protected' => $method->isProtected(), 'static' => $method->isStatic(), 'comments' => $method->getDocComment());
            }
        }
    }