Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit eb762de

Browse files
author
Aljosha Papsch
committed
XmlDriver: Avoid PHP bug #62577 by avoiding simplexml_load_file.
Doctrine is affected by PHP bug #62577. simplexml_load_file is not able to load files if libxml_disable_entity_loader(true) has been called. simplexml_load_file fails with the message: I/O warning : failed to load external entity "/my/mappings/my_entity.dcm.xml" in /path-to/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 711 This error occurs even if there are no external entities in the XML file. Waiting for the PHP bug to be resolved is infeasible, because it is unresolved since years. Therefore Doctrine needs to circumvent the bug by replacing simplexml_load_file with simplexml_load_string while getting the file contents itself. simplexml_load_string is not affected by the PHP bug.
1 parent 60e29b4 commit eb762de

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,7 @@ private function _getCascadeMappings(SimpleXMLElement $cascadeElement)
838838
protected function loadMappingFile($file)
839839
{
840840
$result = [];
841-
$xmlElement = simplexml_load_file($file);
841+
$xmlElement = simplexml_load_string(file_get_contents($file));
842842

843843
if (isset($xmlElement->entity)) {
844844
foreach ($xmlElement->entity as $entityElement) {

0 commit comments

Comments
 (0)