<?php $includeDir = "@php_dir@" == "@" . "php_dir@" ? dirname(__FILE__) . "/.." : "@php_dir@/XRef"; require_once "{$includeDir}/XRef.class.php"; $xref = new XRef(); $parser = new XRef_Parser_PHP(); $file_name = $argc > 0 ? $argv[0] : __FILE__; $file_content = file_get_contents($file_name); $parsed_file = $parser->parse($file_content, $file_name); echo "Classes: ", print_r($parsed_file->getClasses(), true), "\n\n"; echo "Methods: ", print_r($parsed_file->getMethods(), true), "\n\n"; echo "Constants: ", print_r($parsed_file->getConstants(), true), "\n\n"; class ExampleClass extends Exception { public function __construct($message) { parent::__construct($message); } }
throw new Exception(); } }; my_echo("PHP-P gzdecode time", $b->timeIt($f), "sec"); $stmts_array = array_cast_recursive($stmts); $serialized = serialize($stmts_array); my_echo("PHP-P array serialized", strlen($serialized), "bytes"); $f = function () use($serialized) { $stmts = unserialize($serialized); }; my_echo("PHP-P array unserialize time", $b->timeIt($f), "sec"); $xref = new XRef(); // init autoload etc $parser = new XRef_Parser_PHP(); $f = function () use($parser, $code, $filename) { $pf = $parser->parse($code, $filename); $pf->release(); }; my_echo("XRef internal parser", $b->timeIt($f, 30), "sec"); $slices = array(); $pf = $parser->parse($code, $filename); $project_database = new XRef_ProjectDatabase(); foreach ($xref->getPlugins("XRef_IProjectLintPlugin") as $id => $plugin) { $slices[$id] = $plugin->createFileSlice($pf); } $slices['_db'] = $project_database->createFileSlice($pf); $pf->release(); $serialized = serialize($slices); my_echo("XRef serialized size", strlen($serialized), "bytes"); $compressed = gzcompress($serialized); my_echo("XRef compressed size", strlen($compressed), "bytes");