src/Pahout.php
public function instruct()
    {
        foreach ($this->files as $file) {
            Logger::getInstance()->info('Parse: '.$file);
            try {
                $root = \ast\parse_file($file, Config::AST_VERSION);
                $this->annotations = Annotation::create($file, file_get_contents($file));
                // If file is empty, $root is not instance of Node.
                if ($root instanceof Node) {
                    $this->traverse($file, $root);
                }
            } catch (\ParseError $exception) {
                // When a parsing error occurs, the file is determined to be a syntax error.
                Logger::getInstance()->info('Parse error occurred: '.$file);
                // SyntaxError is a special tool. Pahout directly generates Hint without checking AST.
                if (!in_array('SyntaxError', Config::getInstance()->ignore_tools, true)) {
                    $this->hints[] = new Hint(
                        'SyntaxError',
                        'Syntax error occurred.',
                        $file,
                        $exception->getLine(),
                        Hint::DOCUMENT_LINK."/SyntaxError.md"
                    );
                }
            }
        }

        Logger::getInstance()->info('Hints: '.count($this->hints));
    }
public function instruct()
    {
        foreach ($this->files as $file) {
            Logger::getInstance()->info('Parse: '.$file);
            try {
                $root = \ast\parse_file($file, Config::AST_VERSION);
                $this->annotations = Annotation::create($file, file_get_contents($file));
                // If file is empty, $root is not instance of Node.
                if ($root instanceof Node) {
                    $this->traverse($file, $root);
                }
            } catch (\ParseError $exception) {
                // When a parsing error occurs, the file is determined to be a syntax error.
                Logger::getInstance()->info('Parse error occurred: '.$file);
                // SyntaxError is a special tool. Pahout directly generates Hint without checking AST.
                if (!in_array('SyntaxError', Config::getInstance()->ignore_tools, true)) {
                    $this->hints[] = new Hint(
                        'SyntaxError',
                        'Syntax error occurred.',
                        $file,
                        $exception->getLine(),
                        Hint::DOCUMENT_LINK."/SyntaxError.md"
                    );
                }
            }
        }

        Logger::getInstance()->info('Hints: '.count($this->hints));
    }
public function instruct ( ) { foreach ( $ this -> files as $ file ) { Logger :: getInstance ( ) -> info ( 'Parse: ' . $ file ) ; try { $ root = \ ast \ parse_file ( $ file , Config :: AST_VERSION ) ; $ this -> annotations = Annotation :: create ( $ file , file_get_contents ( $ file ) ) ; // If file is empty, $root is not instance of Node. if ( $ root instanceof Node ) { $ this -> traverse ( $ file , $ root ) ; } } catch ( \ ParseError $ exception ) { // When a parsing error occurs, the file is determined to be a syntax error. Logger :: getInstance ( ) -> info ( 'Parse error occurred: ' . $ file ) ; // SyntaxError is a special tool. Pahout directly generates Hint without checking AST. if ( ! in_array ( 'SyntaxError' , Config :: getInstance ( ) -> ignore_tools , true ) ) { $ this -> hints [ ] = new Hint ( 'SyntaxError' , 'Syntax error occurred.' , $ file , $ exception -> getLine ( ) , Hint :: DOCUMENT_LINK . "/SyntaxError.md" ) ; } } } Logger :: getInstance ( ) -> info ( 'Hints: ' . count ( $ this -> hints ) ) ; }
Tell you about PHP hints.

Parses the file to be analyzed and traverses the obtained AST node with DFS.

@return void
Tell you about PHP hints .