Classes

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 20 40 60 80 100 Line Coverage (%) Cyclomatic Complexity Phpdftk\Html\Dom\Element — Coverage: 70.5% | Lines: 139 | Complexity: 87 Phpdftk\Html\Dom\Node — Coverage: 95.2% | Lines: 62 | Complexity: 31 Phpdftk\Html\Dom\Document — Coverage: 85.7% | Lines: 42 | Complexity: 33 Phpdftk\Html\Dom\ClassList — Coverage: 93.5% | Lines: 31 | Complexity: 20 Phpdftk\Html\Dom\ShadowRoot — Coverage: 78.9% | Lines: 19 | Complexity: 7 Phpdftk\Html\Dom\Text — Coverage: 36.8% | Lines: 19 | Complexity: 11 Phpdftk\Html\Dom\HTMLSlotElement — Coverage: 0.0% | Lines: 15 | Complexity: 7 Phpdftk\Html\Dom\DocumentType — Coverage: 50.0% | Lines: 10 | Complexity: 6 Phpdftk\Html\Dom\Comment — Coverage: 62.5% | Lines: 8 | Complexity: 6 Phpdftk\Html\Dom\DocumentFragment — Coverage: 20.0% | Lines: 5 | Complexity: 4 Phpdftk\Html\Dom\Attr — Coverage: 100.0% | Lines: 2 | Complexity: 3 Phpdftk\Html\Dom\ShadowRootInit — Coverage: 100.0% | Lines: 1 | Complexity: 1

Methods

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 2 4 6 8 10 Line Coverage (%) Cyclomatic Complexity Phpdftk\Html\Dom\Node::insertBefore — Coverage: 95.2% | Lines: 21 | Complexity: 9 Phpdftk\Html\Dom\Element::shallowClone — Coverage: 100.0% | Lines: 14 | Complexity: 5 Phpdftk\Html\Dom\Node::removeChild — Coverage: 91.7% | Lines: 12 | Complexity: 4 Phpdftk\Html\Dom\Element::querySelectorAll — Coverage: 100.0% | Lines: 11 | Complexity: 4 Phpdftk\Html\Dom\Element::isShadowHostEligible — Coverage: 90.9% | Lines: 11 | Complexity: 5 Phpdftk\Html\Dom\HTMLSlotElement::assignedNodes — Coverage: 0.0% | Lines: 10 | Complexity: 5 Phpdftk\Html\Dom\Text::splitText — Coverage: 0.0% | Lines: 10 | Complexity: 4 Phpdftk\Html\Dom\ClassList::toggle — Coverage: 100.0% | Lines: 8 | Complexity: 5 Phpdftk\Html\Dom\Document::findById — Coverage: 100.0% | Lines: 8 | Complexity: 6 Phpdftk\Html\Dom\Element::setAttribute — Coverage: 100.0% | Lines: 8 | Complexity: 4 Phpdftk\Html\Dom\Element::attachShadow — Coverage: 100.0% | Lines: 8 | Complexity: 3 Phpdftk\Html\Dom\Document::createElement — Coverage: 100.0% | Lines: 7 | Complexity: 6 Phpdftk\Html\Dom\Document::findHtmlChild — Coverage: 71.4% | Lines: 7 | Complexity: 6 Phpdftk\Html\Dom\Element::indexAmongTypeSiblings — Coverage: 0.0% | Lines: 7 | Complexity: 5 Phpdftk\Html\Dom\Element::indexAmongTypeSiblingsFromEnd — Coverage: 0.0% | Lines: 7 | Complexity: 5 Phpdftk\Html\Dom\ShadowRoot::__construct — Coverage: 100.0% | Lines: 7 | Complexity: 1 Phpdftk\Html\Dom\ClassList::add — Coverage: 100.0% | Lines: 6 | Complexity: 3 Phpdftk\Html\Dom\Element::closest — Coverage: 0.0% | Lines: 6 | Complexity: 4 Phpdftk\Html\Dom\ClassList::remove — Coverage: 100.0% | Lines: 5 | Complexity: 2 Phpdftk\Html\Dom\Document::collectByTagName — Coverage: 100.0% | Lines: 5 | Complexity: 6 Phpdftk\Html\Dom\Element::children — Coverage: 100.0% | Lines: 5 | Complexity: 3 Phpdftk\Html\Dom\Element::indexAmongSiblings — Coverage: 0.0% | Lines: 5 | Complexity: 3 Phpdftk\Html\Dom\Element::indexAmongSiblingsFromEnd — Coverage: 100.0% | Lines: 5 | Complexity: 3 Phpdftk\Html\Dom\Element::collectByTagName — Coverage: 100.0% | Lines: 5 | Complexity: 6 Phpdftk\Html\Dom\Node::replaceChild — Coverage: 80.0% | Lines: 5 | Complexity: 2 Phpdftk\Html\Dom\Node::cloneNode — Coverage: 100.0% | Lines: 5 | Complexity: 3 Phpdftk\Html\Dom\ShadowRoot::collectSlots — Coverage: 100.0% | Lines: 5 | Complexity: 4 Phpdftk\Html\Dom\ClassList::assertValidToken — Coverage: 75.0% | Lines: 4 | Complexity: 3 Phpdftk\Html\Dom\Document::getElementsByTagName — Coverage: 100.0% | Lines: 4 | Complexity: 1 Phpdftk\Html\Dom\Document::shallowClone — Coverage: 0.0% | Lines: 4 | Complexity: 1 Phpdftk\Html\Dom\DocumentType::__construct — Coverage: 100.0% | Lines: 4 | Complexity: 1 Phpdftk\Html\Dom\Element::__construct — Coverage: 100.0% | Lines: 4 | Complexity: 1 Phpdftk\Html\Dom\Element::getElementsByTagName — Coverage: 100.0% | Lines: 4 | Complexity: 2 Phpdftk\Html\Dom\Element::allAttributes — Coverage: 0.0% | Lines: 4 | Complexity: 2 Phpdftk\Html\Dom\Element::previousElementSibling — Coverage: 0.0% | Lines: 4 | Complexity: 3 Phpdftk\Html\Dom\Element::nextElementSibling — Coverage: 0.0% | Lines: 4 | Complexity: 3 Phpdftk\Html\Dom\HTMLSlotElement::assignedElements — Coverage: 0.0% | Lines: 4 | Complexity: 1 Phpdftk\Html\Dom\Node::childNodes — Coverage: 100.0% | Lines: 4 | Complexity: 2 Phpdftk\Html\Dom\Node::textContent — Coverage: 100.0% | Lines: 4 | Complexity: 2 Phpdftk\Html\Dom\Node::setTextContent — Coverage: 100.0% | Lines: 4 | Complexity: 3 Phpdftk\Html\Dom\Node::isAncestorOf — Coverage: 100.0% | Lines: 4 | Complexity: 3 Phpdftk\Html\Dom\ShadowRoot::shallowClone — Coverage: 0.0% | Lines: 4 | Complexity: 1 Phpdftk\Html\Dom\ClassList::tokens — Coverage: 100.0% | Lines: 3 | Complexity: 2 Phpdftk\Html\Dom\Element::matches — Coverage: 100.0% | Lines: 3 | Complexity: 1 Phpdftk\Html\Dom\ShadowRoot::slots — Coverage: 100.0% | Lines: 3 | Complexity: 1 Phpdftk\Html\Dom\Comment::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 Phpdftk\Html\Dom\Comment::shallowClone — Coverage: 0.0% | Lines: 2 | Complexity: 1 Phpdftk\Html\Dom\DocumentFragment::shallowClone — Coverage: 0.0% | Lines: 2 | Complexity: 1 Phpdftk\Html\Dom\DocumentType::shallowClone — Coverage: 0.0% | Lines: 2 | Complexity: 1 Phpdftk\Html\Dom\Element::querySelector — Coverage: 100.0% | Lines: 2 | Complexity: 1 Phpdftk\Html\Dom\Element::elementId — Coverage: 100.0% | Lines: 2 | Complexity: 3 Phpdftk\Html\Dom\Element::parentElement — Coverage: 100.0% | Lines: 2 | Complexity: 2 Phpdftk\Html\Dom\Element::splitPrefix — Coverage: 100.0% | Lines: 2 | Complexity: 2 Phpdftk\Html\Dom\Element::splitLocalName — Coverage: 100.0% | Lines: 2 | Complexity: 2 Phpdftk\Html\Dom\Text::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 Phpdftk\Html\Dom\Text::shallowClone — Coverage: 100.0% | Lines: 2 | Complexity: 1 Phpdftk\Html\Dom\Attr::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Attr::qualifiedName — Coverage: 100.0% | Lines: 1 | Complexity: 2 Phpdftk\Html\Dom\ClassList::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\ClassList::contains — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\ClassList::values — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\ClassList::count — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\ClassList::write — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Comment::nodeType — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Comment::nodeName — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Comment::textContent — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Comment::setTextContent — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Document::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Document::nodeType — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Document::nodeName — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Document::createTextNode — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Document::createComment — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Document::createDocumentFragment — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Document::getElementById — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\DocumentFragment::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\DocumentFragment::nodeType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\DocumentFragment::nodeName — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\DocumentType::nodeType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\DocumentType::nodeName — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\DocumentType::textContent — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\DocumentType::setTextContent — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::nodeType — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::nodeName — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::attributes — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::hasAttribute — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::getAttribute — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::getAttributeNode — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::setAttributeNode — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::removeAttribute — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::localName — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::namespaceUri — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::classes — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::getAttributeValue — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::elementChildren — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Element::canonicalAttrKey — Coverage: 100.0% | Lines: 1 | Complexity: 2 Phpdftk\Html\Dom\HTMLSlotElement::setAssignedNodes — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Node::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Node::hasChildNodes — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Node::appendChild — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\ShadowRootInit::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Text::nodeType — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Text::nodeName — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Text::textContent — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Text::setTextContent — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\Html\Dom\Text::length — Coverage: 0.0% | Lines: 1 | Complexity: 1

 

Sorted by descending CRAP (Change Risk Anti-Patterns) index.

Method CRAP Coverage
Phpdftk\Html\Dom\Element::indexAmongTypeSiblings300.0%
Phpdftk\Html\Dom\Element::indexAmongTypeSiblingsFromEnd300.0%
Phpdftk\Html\Dom\HTMLSlotElement::assignedNodes300.0%
Phpdftk\Html\Dom\Element::closest200.0%
Phpdftk\Html\Dom\Text::splitText200.0%
Phpdftk\Html\Dom\Element::previousElementSibling120.0%
Phpdftk\Html\Dom\Element::nextElementSibling120.0%
Phpdftk\Html\Dom\Element::indexAmongSiblings120.0%
Phpdftk\Html\Dom\Node::insertBefore995.2%
Phpdftk\Html\Dom\Document::findHtmlChild6.8471.4%
Phpdftk\Html\Dom\Document::createElement6100.0%
Phpdftk\Html\Dom\Document::collectByTagName6100.0%
Phpdftk\Html\Dom\Document::findById6100.0%
Phpdftk\Html\Dom\Element::allAttributes60.0%
Phpdftk\Html\Dom\Element::collectByTagName6100.0%
Phpdftk\Html\Dom\Element::isShadowHostEligible5.0290.9%
Phpdftk\Html\Dom\ClassList::toggle5100.0%
Phpdftk\Html\Dom\Element::shallowClone5100.0%
Phpdftk\Html\Dom\Node::removeChild4.0191.7%
Phpdftk\Html\Dom\Element::setAttribute4100.0%
Phpdftk\Html\Dom\Element::querySelectorAll4100.0%
Phpdftk\Html\Dom\ShadowRoot::collectSlots4100.0%
Phpdftk\Html\Dom\ClassList::assertValidToken3.1475.0%
Phpdftk\Html\Dom\ClassList::add3100.0%
Phpdftk\Html\Dom\Element::children3100.0%
Phpdftk\Html\Dom\Element::elementId3100.0%
Phpdftk\Html\Dom\Element::indexAmongSiblingsFromEnd3100.0%
Phpdftk\Html\Dom\Element::attachShadow3100.0%
Phpdftk\Html\Dom\Node::setTextContent3100.0%
Phpdftk\Html\Dom\Node::cloneNode3100.0%
Phpdftk\Html\Dom\Node::isAncestorOf3100.0%
Phpdftk\Html\Dom\Node::replaceChild2.0380.0%
Phpdftk\Html\Dom\Attr::qualifiedName2100.0%
Phpdftk\Html\Dom\ClassList::remove2100.0%
Phpdftk\Html\Dom\ClassList::count20.0%
Phpdftk\Html\Dom\ClassList::tokens2100.0%
Phpdftk\Html\Dom\Comment::setTextContent20.0%
Phpdftk\Html\Dom\Comment::shallowClone20.0%
Phpdftk\Html\Dom\Document::shallowClone20.0%
Phpdftk\Html\Dom\DocumentFragment::nodeType20.0%
Phpdftk\Html\Dom\DocumentFragment::nodeName20.0%
Phpdftk\Html\Dom\DocumentFragment::shallowClone20.0%
Phpdftk\Html\Dom\DocumentType::nodeType20.0%
Phpdftk\Html\Dom\DocumentType::textContent20.0%
Phpdftk\Html\Dom\DocumentType::setTextContent20.0%
Phpdftk\Html\Dom\DocumentType::shallowClone20.0%
Phpdftk\Html\Dom\Element::getAttributeNode20.0%
Phpdftk\Html\Dom\Element::getElementsByTagName2100.0%
Phpdftk\Html\Dom\Element::namespaceUri20.0%
Phpdftk\Html\Dom\Element::parentElement2100.0%
Phpdftk\Html\Dom\Element::elementChildren20.0%
Phpdftk\Html\Dom\Element::canonicalAttrKey2100.0%
Phpdftk\Html\Dom\Element::splitPrefix2100.0%
Phpdftk\Html\Dom\Element::splitLocalName2100.0%
Phpdftk\Html\Dom\HTMLSlotElement::assignedElements20.0%
Phpdftk\Html\Dom\HTMLSlotElement::setAssignedNodes20.0%
Phpdftk\Html\Dom\Node::childNodes2100.0%
Phpdftk\Html\Dom\Node::textContent2100.0%
Phpdftk\Html\Dom\ShadowRoot::shallowClone20.0%
Phpdftk\Html\Dom\Text::setTextContent20.0%
Phpdftk\Html\Dom\Text::length20.0%
Phpdftk\Html\Dom\Attr::__construct1100.0%
Phpdftk\Html\Dom\ClassList::__construct1100.0%
Phpdftk\Html\Dom\ClassList::contains1100.0%
Phpdftk\Html\Dom\ClassList::values1100.0%
Phpdftk\Html\Dom\ClassList::write1100.0%
Phpdftk\Html\Dom\Comment::__construct1100.0%
Phpdftk\Html\Dom\Comment::nodeType1100.0%
Phpdftk\Html\Dom\Comment::nodeName1100.0%
Phpdftk\Html\Dom\Comment::textContent1100.0%
Phpdftk\Html\Dom\Document::__construct1100.0%
Phpdftk\Html\Dom\Document::nodeType1100.0%
Phpdftk\Html\Dom\Document::nodeName1100.0%
Phpdftk\Html\Dom\Document::createTextNode1100.0%
Phpdftk\Html\Dom\Document::createComment1100.0%
Phpdftk\Html\Dom\Document::createDocumentFragment1100.0%
Phpdftk\Html\Dom\Document::getElementsByTagName1100.0%
Phpdftk\Html\Dom\Document::getElementById1100.0%
Phpdftk\Html\Dom\DocumentFragment::__construct1100.0%
Phpdftk\Html\Dom\DocumentType::__construct1100.0%
Phpdftk\Html\Dom\DocumentType::nodeName1100.0%
Phpdftk\Html\Dom\Element::__construct1100.0%
Phpdftk\Html\Dom\Element::nodeType1100.0%
Phpdftk\Html\Dom\Element::nodeName1100.0%
Phpdftk\Html\Dom\Element::attributes1100.0%
Phpdftk\Html\Dom\Element::hasAttribute1100.0%
Phpdftk\Html\Dom\Element::getAttribute1100.0%
Phpdftk\Html\Dom\Element::setAttributeNode1100.0%
Phpdftk\Html\Dom\Element::removeAttribute1100.0%
Phpdftk\Html\Dom\Element::querySelector1100.0%
Phpdftk\Html\Dom\Element::matches1100.0%
Phpdftk\Html\Dom\Element::localName1100.0%
Phpdftk\Html\Dom\Element::classes1100.0%
Phpdftk\Html\Dom\Element::getAttributeValue1100.0%
Phpdftk\Html\Dom\Node::__construct1100.0%
Phpdftk\Html\Dom\Node::hasChildNodes1100.0%
Phpdftk\Html\Dom\Node::appendChild1100.0%
Phpdftk\Html\Dom\ShadowRoot::__construct1100.0%
Phpdftk\Html\Dom\ShadowRoot::slots1100.0%
Phpdftk\Html\Dom\ShadowRootInit::__construct1100.0%
Phpdftk\Html\Dom\Text::__construct1100.0%
Phpdftk\Html\Dom\Text::nodeType1100.0%
Phpdftk\Html\Dom\Text::nodeName1100.0%
Phpdftk\Html\Dom\Text::textContent1100.0%
Phpdftk\Html\Dom\Text::shallowClone1100.0%
Phpdftk\Html\Dom\Node::nodeType0100.0%
Phpdftk\Html\Dom\Node::nodeName0100.0%
Phpdftk\Html\Dom\Node::shallowClone0100.0%