pStmt_Use() protected method

protected pStmt_Use ( PhpParser\Node\Stmt\Use_ $node )
$node PhpParser\Node\Stmt\Use_
Exemplo n.º 1
0
 /**
  * Traverses the main PHP file, checks for namespaces, classes, if statements and use statements.
  * A chain of responsibility could be used here to get rid of the awful if/else statements.
  *
  * @param $statements
  * @param string $namespaceString
  * @returns array $code
  */
 protected function traverseStatements($statements, $namespaceString = '')
 {
     $uses = '';
     $code = [];
     foreach ($statements as $statement) {
         if ($statement instanceof Namespace_) {
             $namespaceString = implode('\\', $statement->name->parts);
             $nestedCode = $this->traverseStatements($statement->stmts, $namespaceString);
             $code = array_merge($code, $nestedCode);
         } elseif ($statement instanceof Class_) {
             if (empty($namespaceString)) {
                 $namespaceString = 'tmp';
             }
             $fileLocation = DIRECTORY_SEPARATOR . str_replace('\\', DIRECTORY_SEPARATOR, $namespaceString);
             $code[$statement->name] = $this->getClass($statement, $namespaceString, $fileLocation, $uses);
         } elseif ($statement instanceof If_) {
             $nestedCode = $this->traverseStatements($statement->stmts, $namespaceString);
             $code = array_merge($code, $nestedCode);
         } elseif ($statement instanceof Use_) {
             $uses .= $this->prettyPrinter->pStmt_Use($statement) . PHP_EOL;
         }
     }
     return $code;
 }