Classes

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

0% 20% 40% 60% 80% 100% 0 50 100 150 Line Coverage (%) Cyclomatic Complexity Phpdftk\Pdf\Reader\Parser\ContentStreamParser — Coverage: 98.8% | Lines: 172 | Complexity: 99 Phpdftk\Pdf\Reader\Parser\ObjectParser — Coverage: 94.0% | Lines: 133 | Complexity: 59 Phpdftk\Pdf\Reader\Parser\HintTableParser — Coverage: 95.0% | Lines: 121 | Complexity: 20 Phpdftk\Pdf\Reader\Parser\StreamParser — Coverage: 81.6% | Lines: 98 | Complexity: 57 Phpdftk\Pdf\Reader\Parser\XrefParser — Coverage: 90.8% | Lines: 65 | Complexity: 37 Phpdftk\Pdf\Reader\Parser\XrefStreamParser — Coverage: 98.3% | Lines: 58 | Complexity: 21 Phpdftk\Pdf\Reader\Parser\ObjectStreamParser — Coverage: 97.4% | Lines: 39 | Complexity: 12 Phpdftk\Pdf\Reader\Parser\BitReader — Coverage: 100.0% | Lines: 18 | Complexity: 9 Phpdftk\Pdf\Reader\Parser\PageOffsetHintTable — Coverage: 100.0% | Lines: 11 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ObjectScanner — Coverage: 100.0% | Lines: 8 | Complexity: 3 Phpdftk\Pdf\Reader\Parser\ContentStreamOp — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\PageHintEntry — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\SharedObjectHintEntry — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\SharedObjectHintTable — 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 5 10 15 20 25 Line Coverage (%) Cyclomatic Complexity Phpdftk\Pdf\Reader\Parser\HintTableParser::parsePageOffsetTable — Coverage: 94.0% | Lines: 83 | Complexity: 13 Phpdftk\Pdf\Reader\Parser\XrefStreamParser::parseXrefStream — Coverage: 98.2% | Lines: 57 | Complexity: 20 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::parse — Coverage: 100.0% | Lines: 49 | Complexity: 20 Phpdftk\Pdf\Reader\Parser\XrefParser::parseClassicXref — Coverage: 85.0% | Lines: 40 | Complexity: 11 Phpdftk\Pdf\Reader\Parser\ObjectStreamParser::unpack — Coverage: 97.4% | Lines: 38 | Complexity: 11 Phpdftk\Pdf\Reader\Parser\HintTableParser::parseSharedObjectTable — Coverage: 97.3% | Lines: 37 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ObjectParser::scanForEndstream — Coverage: 86.7% | Lines: 30 | Complexity: 10 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readInlineImage — Coverage: 100.0% | Lines: 25 | Complexity: 17 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readArray — Coverage: 95.5% | Lines: 22 | Complexity: 10 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readLiteralString — Coverage: 100.0% | Lines: 21 | Complexity: 8 Phpdftk\Pdf\Reader\Parser\StreamParser::decode — Coverage: 100.0% | Lines: 21 | Complexity: 12 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseIndirectObject — Coverage: 100.0% | Lines: 17 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseStream — Coverage: 87.5% | Lines: 16 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseDictionary — Coverage: 93.3% | Lines: 15 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseTokenValue — Coverage: 100.0% | Lines: 14 | Complexity: 12 Phpdftk\Pdf\Reader\Parser\StreamParser::resolveDecodeParms — Coverage: 78.6% | Lines: 14 | Complexity: 10 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readInlineDict — Coverage: 92.3% | Lines: 13 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\BitReader::readBits — Coverage: 100.0% | Lines: 12 | Complexity: 4 Phpdftk\Pdf\Reader\Parser\StreamParser::decodeCCITTFax — Coverage: 81.8% | Lines: 11 | Complexity: 9 Phpdftk\Pdf\Reader\Parser\StreamParser::decodeJbig2 — Coverage: 36.4% | Lines: 11 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\StreamParser::resolveFilterNames — Coverage: 100.0% | Lines: 11 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readName — Coverage: 100.0% | Lines: 10 | Complexity: 4 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseIntegerOrReference — Coverage: 100.0% | Lines: 10 | Complexity: 3 Phpdftk\Pdf\Reader\Parser\PageOffsetHintTable::getPageByteRange — Coverage: 100.0% | Lines: 10 | Complexity: 5 Phpdftk\Pdf\Reader\Parser\StreamParser::applyPredictor — Coverage: 100.0% | Lines: 10 | Complexity: 3 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readHexString — Coverage: 100.0% | Lines: 9 | Complexity: 4 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readNumber — Coverage: 100.0% | Lines: 9 | Complexity: 7 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readKeyword — Coverage: 100.0% | Lines: 9 | Complexity: 4 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseArray — Coverage: 88.9% | Lines: 9 | Complexity: 4 Phpdftk\Pdf\Reader\Parser\XrefParser::readLine — Coverage: 100.0% | Lines: 9 | Complexity: 4 Phpdftk\Pdf\Reader\Parser\XrefParser::readWord — Coverage: 100.0% | Lines: 9 | Complexity: 12 Phpdftk\Pdf\Reader\Parser\ObjectParser::skipStreamTrailer — Coverage: 100.0% | Lines: 8 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ObjectScanner::scan — Coverage: 100.0% | Lines: 8 | Complexity: 3 Phpdftk\Pdf\Reader\Parser\StreamParser::boolParam — Coverage: 37.5% | Lines: 8 | Complexity: 4 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseDictionaryOrStream — Coverage: 100.0% | Lines: 6 | Complexity: 2 Phpdftk\Pdf\Reader\Parser\StreamParser::intParam — Coverage: 83.3% | Lines: 6 | Complexity: 3 Phpdftk\Pdf\Reader\Parser\XrefParser::skipWhitespace — Coverage: 100.0% | Lines: 6 | Complexity: 9 Phpdftk\Pdf\Reader\Parser\ObjectParser::expect — Coverage: 100.0% | Lines: 5 | Complexity: 2 Phpdftk\Pdf\Reader\Parser\BitReader::alignToByte — Coverage: 100.0% | Lines: 3 | Complexity: 2 Phpdftk\Pdf\Reader\Parser\StreamParser::decodeLzw — Coverage: 100.0% | Lines: 3 | Complexity: 2 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isWhitespace — Coverage: 100.0% | Lines: 2 | Complexity: 6 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isDelimiter — Coverage: 100.0% | Lines: 2 | Complexity: 8 Phpdftk\Pdf\Reader\Parser\ObjectParser::parseValue — Coverage: 100.0% | Lines: 2 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\StreamParser::decodeFlate — Coverage: 100.0% | Lines: 2 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\BitReader::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\BitReader::getBitPosition — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\BitReader::getBytePosition — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\ContentStreamOp::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isNumberStart — Coverage: 100.0% | Lines: 1 | Complexity: 5 Phpdftk\Pdf\Reader\Parser\HintTableParser::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\ObjectParser::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\ObjectStreamParser::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\PageHintEntry::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\PageOffsetHintTable::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\SharedObjectHintEntry::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\SharedObjectHintTable::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\StreamParser::setResolver — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\XrefParser::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\Pdf\Reader\Parser\XrefStreamParser::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::parse20100.0%
Phpdftk\Pdf\Reader\Parser\XrefStreamParser::parseXrefStream2098.2%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readInlineImage17100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::decodeJbig215.2836.4%
Phpdftk\Pdf\Reader\Parser\HintTableParser::parsePageOffsetTable13.0494.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseTokenValue12100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::decode12100.0%
Phpdftk\Pdf\Reader\Parser\XrefParser::readWord12100.0%
Phpdftk\Pdf\Reader\Parser\XrefParser::parseClassicXref11.4185.0%
Phpdftk\Pdf\Reader\Parser\ObjectStreamParser::unpack1197.4%
Phpdftk\Pdf\Reader\Parser\StreamParser::resolveDecodeParms10.9878.6%
Phpdftk\Pdf\Reader\Parser\ObjectParser::scanForEndstream10.2486.7%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readArray1095.5%
Phpdftk\Pdf\Reader\Parser\StreamParser::decodeCCITTFax9.4981.8%
Phpdftk\Pdf\Reader\Parser\XrefParser::skipWhitespace9100.0%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isDelimiter8100.0%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readLiteralString8100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::boolParam7.9137.5%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readNumber7100.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseStream6.0787.5%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readInlineDict6.0292.3%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseDictionary6.0193.3%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isWhitespace6100.0%
Phpdftk\Pdf\Reader\Parser\HintTableParser::parseSharedObjectTable697.3%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseIndirectObject6100.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::skipStreamTrailer6100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::resolveFilterNames6100.0%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isNumberStart5100.0%
Phpdftk\Pdf\Reader\Parser\PageOffsetHintTable::getPageByteRange5100.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseArray4.0288.9%
Phpdftk\Pdf\Reader\Parser\BitReader::readBits4100.0%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readHexString4100.0%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readName4100.0%
Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readKeyword4100.0%
Phpdftk\Pdf\Reader\Parser\XrefParser::readLine4100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::intParam3.0483.3%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseIntegerOrReference3100.0%
Phpdftk\Pdf\Reader\Parser\ObjectScanner::scan3100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::applyPredictor3100.0%
Phpdftk\Pdf\Reader\Parser\BitReader::alignToByte2100.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseDictionaryOrStream2100.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::expect2100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::decodeLzw2100.0%
Phpdftk\Pdf\Reader\Parser\BitReader::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\BitReader::getBitPosition1100.0%
Phpdftk\Pdf\Reader\Parser\BitReader::getBytePosition1100.0%
Phpdftk\Pdf\Reader\Parser\ContentStreamOp::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\HintTableParser::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\ObjectParser::parseValue1100.0%
Phpdftk\Pdf\Reader\Parser\ObjectStreamParser::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\PageHintEntry::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\PageOffsetHintTable::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\SharedObjectHintEntry::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\SharedObjectHintTable::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::setResolver1100.0%
Phpdftk\Pdf\Reader\Parser\StreamParser::decodeFlate1100.0%
Phpdftk\Pdf\Reader\Parser\XrefParser::__construct1100.0%
Phpdftk\Pdf\Reader\Parser\XrefStreamParser::__construct1100.0%