|
6 | 6 |
|
7 | 7 | namespace Magento\Developer\Model\XmlCatalog\Format; |
8 | 8 |
|
9 | | -use Magento\Developer\Model\XmlCatalog\Format\PhpStorm\DomDocumentFactory; |
10 | 9 | use Magento\Framework\App\ObjectManager; |
| 10 | +use Magento\Framework\DomDocument\DomDocumentFactory; |
11 | 11 | use Magento\Framework\Exception\FileSystemException; |
12 | 12 | use Magento\Framework\Filesystem\Directory\ReadFactory; |
13 | 13 | use Magento\Framework\Filesystem\Directory\ReadInterface; |
@@ -66,14 +66,41 @@ public function generateCatalog(array $dictionary, $configFilePath) |
66 | 66 | \Magento\Framework\Filesystem\DriverPool::FILE, |
67 | 67 | 'r' |
68 | 68 | ); |
69 | | - $dom = $this->domDocumentFactory->create($file->readAll()); |
| 69 | + $dom = $this->domDocumentFactory->create(); |
| 70 | + $fileContent = $file->readAll(); |
| 71 | + if (!empty($fileContent)) { |
| 72 | + $dom->loadXML($fileContent); |
| 73 | + } else { |
| 74 | + $projectNode = $dom->createElement('project'); |
| 75 | + |
| 76 | + //PhpStorm 9 version for component is "4" |
| 77 | + $projectNode->setAttribute('version', '4'); |
| 78 | + $dom->appendChild($projectNode); |
| 79 | + $rootComponentNode = $dom->createElement('component'); |
| 80 | + |
| 81 | + //PhpStorm 9 version for ProjectRootManager is "2" |
| 82 | + $rootComponentNode->setAttribute('version', '2'); |
| 83 | + $rootComponentNode->setAttribute('name', 'ProjectRootManager'); |
| 84 | + $projectNode->appendChild($rootComponentNode); |
| 85 | + } |
70 | 86 | $xpath = new \DOMXPath($dom); |
71 | 87 | $nodeList = $xpath->query('/project'); |
72 | 88 | $projectNode = $nodeList->item(0); |
73 | 89 | $file->close(); |
74 | 90 | } catch (FileSystemException $f) { |
75 | 91 | //create file if does not exists |
76 | 92 | $dom = $this->domDocumentFactory->create(); |
| 93 | + $projectNode = $dom->createElement('project'); |
| 94 | + |
| 95 | + //PhpStorm 9 version for component is "4" |
| 96 | + $projectNode->setAttribute('version', '4'); |
| 97 | + $dom->appendChild($projectNode); |
| 98 | + $rootComponentNode = $dom->createElement('component'); |
| 99 | + |
| 100 | + //PhpStorm 9 version for ProjectRootManager is "2" |
| 101 | + $rootComponentNode->setAttribute('version', '2'); |
| 102 | + $rootComponentNode->setAttribute('name', 'ProjectRootManager'); |
| 103 | + $projectNode->appendChild($rootComponentNode); |
77 | 104 | } |
78 | 105 |
|
79 | 106 | $xpath = new \DOMXPath($dom); |
|
0 commit comments