Exemplo n.º 1
0
$h->loadFile($_GET['file']);
$source = $h->toArray();
/* what do we need to do ? */
if (!isset($_GET['show'])) {
    $show = '';
} else {
    $show = $_GET['show'];
}
print_layout();
switch ($show) {
    case 'main':
        print_op_array($asm['op_array']);
        break;
    case 'functions':
        if (is_array($asm['functions'][$_GET['name']])) {
            print_function($_GET['name'], $asm['functions'][$_GET['name']]);
        }
        break;
    case 'methods':
        if (isset($_GET['method']) && is_array($asm['classes'][$_GET['name']][$_GET['method']])) {
            print_method($_GET['method'], $asm['classes'][$_GET['name']][$_GET['method']]);
        }
        break;
}
/* {{{ convert_string */
function convert_string($string, $length)
{
    if (strlen($string) > $length) {
        $string = substr($string, 0, $length - 4) . ' ...';
    }
    return htmlspecialchars($string);
Exemplo n.º 2
0
/**
 * Prints ReflectionClass in format of PHP code
 * @param classRef ReflectionClass object
 * @param tabs integer[optional] number of tabs for indentation
 */
function print_class($classRef, $tabs = 0)
{
    global $processedClasses;
    $processedClasses[strtolower($classRef->getName())] = true;
    print "\n";
    print_doccomment($classRef, $tabs);
    print_tabs($tabs);
    if ($classRef->isFinal()) {
        print "final ";
    }
    print $classRef->isInterface() ? "interface " : "class ";
    print clean_php_identifier($classRef->getName()) . " ";
    // print out parent class
    $parentClassRef = $classRef->getParentClass();
    if ($parentClassRef) {
        print "extends {$parentClassRef->getName()} ";
    }
    // print out interfaces
    $interfacesRef = $classRef->getInterfaces();
    if (count($interfacesRef) > 0) {
        print $classRef->isInterface() ? "extends " : "implements ";
        $i = 0;
        foreach ($interfacesRef as $interfaceRef) {
            if ($i++ > 0) {
                print ", ";
            }
            print "{$interfaceRef->getName()}";
        }
    }
    print " {\n";
    // process constants
    $constsRef = $classRef->getConstants();
    if (count($constsRef) > 0) {
        print_class_constants($constsRef, $tabs + 1);
        print "\n";
    }
    global $classesDoc;
    // process properties
    $propertiesRef = $classRef->getProperties();
    if (count($propertiesRef) > 0) {
        foreach ($propertiesRef as $propertyRef) {
            print_property($propertyRef, $tabs + 1);
            $printedFields[$propertyRef->getName()] = true;
        }
        print "\n";
    }
    $className = strtolower($classRef->getName());
    if ($className == "DomDocument") {
        echo "DomDocument";
    }
    global $fields_doc;
    if (@$fields_doc[$className]) {
        $fields = @$fields_doc[$className];
        foreach ($fields as $field) {
            if (!$printedFields[$field['name']]) {
                //print doc here
                print "\n";
                $doc = $field['doc'];
                if ($doc) {
                    print_tabs($tabs + 1);
                    print "/**\n";
                    print_tabs($tabs + 1);
                    print " * " . newline_to_phpdoc($doc, $tabs + 1) . "\n";
                    print_tabs($tabs + 1);
                    print " * @var " . $field['type'] . "\n";
                    if ($field['deprecated'] == true) {
                        print_tabs($tabs + 1);
                        print " * @deprecated " . "\n";
                    }
                    print_Tabs($tabs + 1);
                    // http://www.php.net/manual/en/class.domdocument.php#domdocument.props.actualencoding
                    $refname = strtolower($classRef->getName());
                    $class_url = make_url("class." . $refname);
                    $field_name = strtolower($field['name']);
                    $field_url = $class_url . '#' . $className . ".props." . $field_name;
                    print " * @link {$field_url}\n";
                    print_tabs($tabs + 1);
                    print " */\n";
                }
                print_tabs($tabs + 1);
                print implode(' ', array($field['modifier']));
                print " ";
                print "\${$field['name']};\n";
            }
        }
    }
    // process methods
    $methodsRef = $classRef->getMethods();
    if (count($methodsRef) > 0) {
        foreach ($methodsRef as $methodRef) {
            print_function($methodRef, $classRef->isInterface(), $tabs + 1);
        }
        print "\n";
    }
    print_tabs($tabs);
    print "}\n";
}