1--TEST-- 2libxml_get_external_entity_loader() display correct callable name 3--EXTENSIONS-- 4dom 5dba 6--FILE-- 7<?php 8 9$xml = <<<XML 10<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar"> 11<foo>bar</foo> 12XML; 13 14$dtd = <<<DTD 15<!ELEMENT foo (#PCDATA)> 16DTD; 17 18class Handler { 19 public function handle($public, $system, $context) { 20 $file = __DIR__ . '/db.dba'; 21 return dba_open($file, 'n'); 22 } 23} 24 25$o = new Handler(); 26libxml_set_external_entity_loader([$o, 'handle']); 27$dd = new DOMDocument; 28$r = $dd->loadXML($xml); 29 30try { 31 var_dump($dd->validate()); 32} catch (\Throwable $e) { 33 var_dump($e->getMessage()); 34} 35 36?> 37--CLEAN-- 38<?php 39$file = __DIR__ . '/db.dba'; 40unlink($file); 41?> 42--EXPECT-- 43string(73) "DOMDocument::validate(): supplied resource is not a valid stream resource" 44