private function parseFile($file) { $code = file_get_contents($file); $parser = new Parser(new Lexer()); $serializer = new XML(); try { $stmts = $parser->parse($code); $serialized = $serializer->serialize($stmts); return $serialized; } catch (Error $e) { echo "Parser error: " . $e->getMessage(); //$output->writeln('Parser error: ' . $e->getMessage()); } }
/** * Parses specified PHP file. * * @param string $filename */ public function __construct($filename) { $contents = php_strip_whitespace($filename); $pos = strpos($contents, '<?php'); if ($pos !== false) { $contents = substr($contents, $pos); $factory = new PhpParser\ParserFactory(); $parser = $factory->create(PhpParser\ParserFactory::PREFER_PHP7); $serializer = new PhpParser\Serializer\XML(); $nodes = $parser->parse($contents); $xml = $serializer->serialize($nodes); $this->functions = $this->findFunctions($xml); $this->constants = $this->findConstants($xml); $this->classes = $this->findClasses($xml); $this->classConstants = $this->findClassConstants($xml); } }
/** * @expectedException \InvalidArgumentException * @expectedExceptionMessage Unexpected node type */ public function testError() { $serializer = new XML; $serializer->serialize(array(new \stdClass)); }