/** * @param string[] $units * @param string[] $visibilities * @return fDOMDocument */ private function createPhpDoxConfig(array $units, array $visibilities) { $dom = new fDOMDocument(); $dom->loadXML($this->factory->getConfigSkeleton()->renderStripped()); $dom->registerNamespace('config', ConfigLoader::XMLNS); // set up silent $silent = $this->output->getVerbosity() <= OutputInterface::VERBOSITY_NORMAL ? 'true' : 'false'; $dom->queryOne('//config:phpdox')->setAttribute('silent', $silent); // set up directories $projectNode = $dom->queryOne('//config:project'); $projectNode->setAttribute('source', $this->sourceDirectory); $projectNode->setAttribute('workdir', $this->buildDirectory); // inject flag to avoid unecessary processing according to the visibility filter if (1 === count($visibilities) && in_array('public', $visibilities)) { $collectorNode = $dom->queryOne('//config:collector'); $projectNode->setAttribute('publiconly', 'true'); } // remove current masks $query = "//config:collector/*[name()='include' or name()='exclude']"; foreach ($dom->query($query) as $mask) { $mask->parentNode->removeChild($mask); } // append files to be parsed $collector = $dom->queryOne('//config:collector'); foreach ($units as $unitFile) { $include = $dom->createElement('include'); $include->setAttribute('mask', $unitFile); $collector->appendChild($include); } return $dom; }
private function showSkeletonConfig($strip) { $skel = $this->factory->getConfigSkeleton(); echo $strip ? $skel->renderStripped() : $skel->render(); }