protected function getTraverser() { $traverser = new NodeTraverser(); $traverser->addVisitor(new DirVisitor(true)); $traverser->addVisitor(new FileVisitor(true)); return $traverser; }
/** * Get the node traverser to use. * * @param bool $dir * @param bool $file * @param bool $skip * @param bool $strict * * @return \ClassPreloader\Parser\NodeTraverser */ protected function getTraverser($dir, $file, $skip, $strict) { $traverser = new NodeTraverser(); if ($dir) { $traverser->addVisitor(new DirVisitor($skip)); } if ($file) { $traverser->addVisitor(new FileVisitor($skip)); } if (!$strict) { $traverser->addVisitor(new StrictTypesVisitor()); } return $traverser; }
/** * Get the node traverser used by the command. * * @return \ClassPreloader\Parser\NodeTraverser */ protected function getTraverser() { if (!$this->traverser) { $this->traverser = new NodeTraverser(); if ($this->input->getOption('fix_dir')) { $this->traverser->addVisitor(new DirVisitor($this->input->getOption('skip_dir_file'))); } if ($this->input->getOption('fix_file')) { $this->traverser->addVisitor(new FileVisitor($this->input->getOption('skip_dir_file'))); } } return $this->traverser; }
protected function getFullyQualifiedClassNameFromFile(string $path) : string { $parser = (new ParserFactory())->create(ParserFactory::PREFER_PHP7); $traverser = new NodeTraverser(); $traverser->addVisitor(new NameResolver()); $code = file_get_contents($path); $statements = $parser->parse($code); $statements = $traverser->traverse($statements); return collect($statements[0]->stmts)->filter(function ($statement) { return $statement instanceof Class_; })->map(function (Class_ $statement) { return $statement->namespacedName->toString(); })->first(); }
/** * Get the class preloader used by the command. * * @return \ClassPreloader\ClassPreloader */ protected function getClassPreloader() { // Class Preloader 3.x if (class_exists(Factory::class)) { return (new Factory())->create(['skip' => true]); } $traverser = new NodeTraverser(); $traverser->addVisitor(new DirVisitor(true)); $traverser->addVisitor(new FileVisitor(true)); return new ClassPreloader(new PrettyPrinter(), new Parser(new Lexer()), $traverser); }
/** * Get the node traverser used by the command. * * @param \Symfony\Component\Console\Input\InputInterface $input * * @return \ClassPreloader\Parser\NodeTraverser */ protected function getTraverser(InputInterface $input) { $traverser = new NodeTraverser(); $skip = $input->getOption('skip_dir_file'); if ($input->getOption('fix_dir')) { $traverser->addVisitor(new DirVisitor($skip)); } if ($input->getOption('fix_file')) { $traverser->addVisitor(new FileVisitor($skip)); } return $traverser; }