TheSeer\phpDox\Collector\Project::saveUnit PHP Method

saveUnit() private method

private saveUnit ( array $map, array $reportUnits, AbstractUnitObject $unit )
$map array
$reportUnits array
$unit AbstractUnitObject
    private function saveUnit(array $map, array $reportUnits, AbstractUnitObject $unit)
    {
        $indexNode = $this->index->findUnitNodeByName($unit->getNamespace(), $unit->getLocalName());
        if (!$indexNode) {
            throw new ProjectException(sprintf("Internal Error: Unit '%s' not found in index (ns: %s, n: %s).", $unit->getName(), $unit->getNamespace(), $unit->getLocalName()), ProjectException::UnitNotFoundInIndex);
        }
        $name = str_replace('\\', '_', $unit->getName());
        $dom = $unit->export();
        $dom->formatOutput = TRUE;
        $dom->preserveWhiteSpace = FALSE;
        $fname = $map[$dom->documentElement->localName] . '/' . $name . '.xml';
        try {
            $dom->save($this->xmlDir . '/' . $fname);
        } catch (fDOMException $e) {
            throw new ProjectException(sprintf("Internal Error: Unit '%s' could not be saved (ns: %s, n: %s).", $unit->getName(), $unit->getNamespace(), $unit->getLocalName()), ProjectException::UnitCouldNotBeSaved, $e);
        }
        if ($indexNode->hasAttribute('xml')) {
            $reportUnits = array_merge($reportUnits, $this->findAffectedUnits($fname));
        } else {
            $indexNode->setAttribute('xml', $fname);
        }
        return $reportUnits;
    }