예제 #1
0
 function __construct($filename)
 {
     $this->tree = Parser::parseFile($filename);
     $this->once = false;
     $this->tree->walk([$this, 'onceArray']);
     $this->position = 0;
 }
예제 #2
0
function formatFile($filename)
{
    $formatter = FormatterFactory::getDefaultFormatter();
    $tree = Parser::parseFile($filename);
    $formatter->format($tree);
    file_put_contents($filename, $tree->getText());
}
 /**
  * Tests \Pharborist\Parser::parseFile().
  */
 public function testParseFile()
 {
     // Test with a real file.
     $tree = Parser::parseFile(__DIR__ . '/files/basic.php');
     $this->assertInstanceOf('\\Pharborist\\Node', $tree);
     $this->assertCount(1, $tree->children(Filter::isInstanceOf('\\Pharborist\\Functions\\FunctionDeclarationNode')));
     // Test with a non-existant file.
     $tree = Parser::parseFile('no-such-file.php');
     $this->assertFalse($tree);
 }
예제 #4
0
 /**
  * {@inheritdoc}
  */
 public function open($file)
 {
     if (empty($this->documents[$file])) {
         $this->documents[$file] = Parser::parseFile($file);
     }
     return $this->documents[$file];
 }
예제 #5
0
 /**
  * {@inheritdoc}
  */
 public function addFile($path)
 {
     Parser::parseFile($path)->find(Filter::isInstanceOf('\\Pharborist\\Constants\\ConstantNode', '\\Pharborist\\Functions\\DefineNode', '\\Pharborist\\Constants\\ConstantDeclarationNode'))->each([$this, 'add']);
 }
예제 #6
0
 /**
  * {@inheritdoc}
  */
 public function addFile($path)
 {
     $doc = Parser::parseFile($path);
     $doc->children(Filter::isInstanceOf('\\Pharborist\\Functions\\FunctionDeclarationNode'))->each([$this, 'add']);
     $doc->find(Filter::isInstanceOf('\\Pharborist\\Functions\\FunctionCallNode'))->each([$this, 'add']);
 }
예제 #7
0
 /**
  * {@inheritdoc}
  */
 public function addFile($path)
 {
     $doc = Parser::parseFile($path);
     $doc->find(Filter::isInstanceOf('\\Pharborist\\Objects\\ClassNode'))->each([$this, 'add']);
     $doc->find(Filter::isInstanceOf('\\Pharborist\\Objects\\NewNode'))->each([$this, 'add']);
 }