public function generate($targetDirectory) { $solutionPath = sprintf('%s/%s.sln', $targetDirectory, $this->getConfig()->getName()); $solutionGenerator = new SolutionGenerator($solutionPath, $this->getConfig()); foreach ($this->getConfig()->getProjects() as $project) { $project->setUuid(UUID::createV4()); $this->getVariableParser()->push('ide.project', $project); $this->generateProjectFile($project, $targetDirectory); $this->generateFilterFile($project, $targetDirectory); $this->getVariableParser()->pop('ide.project'); } $solutionGenerator->generate(); }
protected function writeItemGroupFilter(DOMElement $parent, Filter $filter) { if ($filter->getName()) { $filterElement = XmlDom::createElement($parent, 'Filter'); $filterElement->setAttribute('Include', $this->writeFilterName($filter)); XmlDom::createElement($filterElement, 'UniqueIdentifier', UUID::createV4()); XmlDom::createElement($filterElement, 'SourceControlFiles', 'True'); XmlDom::createElement($filterElement, 'ParseFiles', 'True'); if ($filter->getExtensions()) { XmlDom::createElement($filterElement, 'Extensions', implode(';', $filter->getExtensions())); } } foreach ($filter->getFilters() as $subFilter) { $this->writeItemGroupFilter($parent, $subFilter); } }