Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 6
Document
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 6
 __construct
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 6
<?php
declare( strict_types = 1 );
namespace Wikimedia\Parsoid\DOM;
class Document extends \DOMDocument implements Node {
    public function __construct() {
        parent::__construct();
        # Register our alias classes. Notes:
        #  - NodeList can't be passed to registerNodeClass, and so in
        #    "DOMDocument" mode we're always going to be using DOMNodeList,
        #    not the Wikimedia\Parsoid\DOM\Compat\NodeList class defined here.
        #  - Similarly, DOMException is always going to be \DOMException
        #    when we're in DOMDocument mode.
        #  - CharacterData and Node are abstract superclasses.  Due to the
        #    limitations of PHP multiple inheritance, we can't make them
        #    proper subclasses of DOMCharacterData/DOMNode.  Instead we make
        #    them marker interfaces, and ensure that all subclasses of
        #    DOMNode also implement our Node interface, and similarly all
        #    subclasses of DOMCharacterData implement our CharacterData marker
        #    interface.
        #  - PHP doesn't have a DOMParser equivalent in the dom extension
        foreach ( [
            'Document',
            'Attr',
            'Comment',
            'DocumentFragment',
            'DocumentType',
            'Element',
            'ProcessingInstruction',
            'Text',
        ] as $cls ) {
            $this->registerNodeClass(
                "DOM$cls",
                "Wikimedia\\Parsoid\\DOM\\$cls"
            );
        }
    }
}