private function processDirectory(DirectoryNode $directory, Node $context) { $dirObject = $context->addDirectory($directory->getName()); $this->setTotals($directory, $dirObject->getTotals()); foreach ($directory as $node) { if ($node instanceof DirectoryNode) { $this->processDirectory($node, $dirObject); continue; } if ($node instanceof FileNode) { $this->processFile($node, $dirObject); continue; } throw new RuntimeException('Unknown node type for XML report'); } }