Skip to content
Snippets Groups Projects
Commit dcc480d1 authored by David Manners's avatar David Manners
Browse files

magento/magento2#5188: Revert the loading of xml from the factory back into...

magento/magento2#5188: Revert the loading of xml from the factory back into the phpstorm specific file
parent a781bf6f
Branches
No related merge requests found
......@@ -6,8 +6,8 @@
namespace Magento\Developer\Model\XmlCatalog\Format;
use Magento\Developer\Model\XmlCatalog\Format\PhpStorm\DomDocumentFactory;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\DomDocument\DomDocumentFactory;
use Magento\Framework\Exception\FileSystemException;
use Magento\Framework\Filesystem\Directory\ReadFactory;
use Magento\Framework\Filesystem\Directory\ReadInterface;
......@@ -66,7 +66,23 @@ class PhpStorm implements FormatInterface
\Magento\Framework\Filesystem\DriverPool::FILE,
'r'
);
$dom = $this->domDocumentFactory->create($file->readAll());
$dom = $this->domDocumentFactory->create();
$fileContent = $file->readAll();
if (!empty($fileContent)) {
$dom->loadXML($fileContent);
} else {
$projectNode = $dom->createElement('project');
//PhpStorm 9 version for component is "4"
$projectNode->setAttribute('version', '4');
$dom->appendChild($projectNode);
$rootComponentNode = $dom->createElement('component');
//PhpStorm 9 version for ProjectRootManager is "2"
$rootComponentNode->setAttribute('version', '2');
$rootComponentNode->setAttribute('name', 'ProjectRootManager');
$projectNode->appendChild($rootComponentNode);
}
$xpath = new \DOMXPath($dom);
$nodeList = $xpath->query('/project');
$projectNode = $nodeList->item(0);
......@@ -74,6 +90,17 @@ class PhpStorm implements FormatInterface
} catch (FileSystemException $f) {
//create file if does not exists
$dom = $this->domDocumentFactory->create();
$projectNode = $dom->createElement('project');
//PhpStorm 9 version for component is "4"
$projectNode->setAttribute('version', '4');
$dom->appendChild($projectNode);
$rootComponentNode = $dom->createElement('component');
//PhpStorm 9 version for ProjectRootManager is "2"
$rootComponentNode->setAttribute('version', '2');
$rootComponentNode->setAttribute('name', 'ProjectRootManager');
$projectNode->appendChild($rootComponentNode);
}
$xpath = new \DOMXPath($dom);
......
......@@ -6,43 +6,18 @@
namespace Magento\Framework\DomDocument;
use DOMDocument;
/**
* DOM document factory
*/
class DomDocumentFactory
{
/**
* @var \Magento\Framework\ObjectManagerInterface
*/
private $objectManager;
/**
* DomDocumentFactory constructor.
* @param \Magento\Framework\ObjectManagerInterface $objectManager
*/
public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager)
{
$this->objectManager = $objectManager;
}
/**
* Create empty DOM document instance.
*
* @param string $data the data to be loaded into the object
*
* @return DOMDocument
* @return \DOMDocument
*/
public function create(string $data = null)
public function create()
{
/** @var DOMDocument $dom */
$dom = $this->objectManager->create(DOMDocument::class);
if (!empty($data)) {
$dom->loadXML($data);
}
return $dom;
return new \DOMDocument();
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment