Skip to content

Commit dcc480d

Browse files
committed
magento#5188: Revert the loading of xml from the factory back into the phpstorm specific file
1 parent a781bf6 commit dcc480d

File tree

2 files changed

+32
-30
lines changed

2 files changed

+32
-30
lines changed

app/code/Magento/Developer/Model/XmlCatalog/Format/PhpStorm.php

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
namespace Magento\Developer\Model\XmlCatalog\Format;
88

9-
use Magento\Developer\Model\XmlCatalog\Format\PhpStorm\DomDocumentFactory;
109
use Magento\Framework\App\ObjectManager;
10+
use Magento\Framework\DomDocument\DomDocumentFactory;
1111
use Magento\Framework\Exception\FileSystemException;
1212
use Magento\Framework\Filesystem\Directory\ReadFactory;
1313
use Magento\Framework\Filesystem\Directory\ReadInterface;
@@ -66,14 +66,41 @@ public function generateCatalog(array $dictionary, $configFilePath)
6666
\Magento\Framework\Filesystem\DriverPool::FILE,
6767
'r'
6868
);
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+
}
7086
$xpath = new \DOMXPath($dom);
7187
$nodeList = $xpath->query('/project');
7288
$projectNode = $nodeList->item(0);
7389
$file->close();
7490
} catch (FileSystemException $f) {
7591
//create file if does not exists
7692
$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);
77104
}
78105

79106
$xpath = new \DOMXPath($dom);

lib/internal/Magento/Framework/DomDocument/DomDocumentFactory.php

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,18 @@
66

77
namespace Magento\Framework\DomDocument;
88

9-
use DOMDocument;
10-
119
/**
1210
* DOM document factory
1311
*/
1412
class DomDocumentFactory
1513
{
16-
/**
17-
* @var \Magento\Framework\ObjectManagerInterface
18-
*/
19-
private $objectManager;
20-
21-
/**
22-
* DomDocumentFactory constructor.
23-
* @param \Magento\Framework\ObjectManagerInterface $objectManager
24-
*/
25-
public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager)
26-
{
27-
$this->objectManager = $objectManager;
28-
}
29-
3014
/**
3115
* Create empty DOM document instance.
3216
*
33-
* @param string $data the data to be loaded into the object
34-
*
35-
* @return DOMDocument
17+
* @return \DOMDocument
3618
*/
37-
public function create(string $data = null)
19+
public function create()
3820
{
39-
/** @var DOMDocument $dom */
40-
$dom = $this->objectManager->create(DOMDocument::class);
41-
42-
if (!empty($data)) {
43-
$dom->loadXML($data);
44-
}
45-
46-
return $dom;
21+
return new \DOMDocument();
4722
}
4823
}

0 commit comments

Comments
 (0)