Classes

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

0% 20% 40% 60% 80% 100% 0 10 20 30 40 50 Line Coverage (%) Cyclomatic Complexity Phpdftk\ResourceLoader\HttpFetcher — Coverage: 91.8% | Lines: 85 | Complexity: 31 Phpdftk\ResourceLoader\SsrfGuard — Coverage: 91.1% | Lines: 79 | Complexity: 39 Phpdftk\ResourceLoader\Transport\CurlTransport — Coverage: 0.0% | Lines: 76 | Complexity: 14 Phpdftk\ResourceLoader\Cache\FileCache — Coverage: 89.5% | Lines: 57 | Complexity: 28 Phpdftk\ResourceLoader\MimeSniffer — Coverage: 96.0% | Lines: 50 | Complexity: 35 Phpdftk\ResourceLoader\ResourceLoader — Coverage: 80.0% | Lines: 20 | Complexity: 7 Phpdftk\ResourceLoader\Cache\NullCache — Coverage: 100.0% | Lines: 3 | Complexity: 2 Phpdftk\ResourceLoader\FetchOptions — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\FetchResult — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\Transport\RawResponse — 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 10 20 30 Line Coverage (%) Cyclomatic Complexity Phpdftk\ResourceLoader\Transport\CurlTransport::send — Coverage: 0.0% | Lines: 76 | Complexity: 14 Phpdftk\ResourceLoader\SsrfGuard::assertSafe — Coverage: 89.3% | Lines: 56 | Complexity: 23 Phpdftk\ResourceLoader\MimeSniffer::sniff — Coverage: 100.0% | Lines: 36 | Complexity: 23 Phpdftk\ResourceLoader\HttpFetcher::fetch — Coverage: 100.0% | Lines: 34 | Complexity: 7 Phpdftk\ResourceLoader\Cache\FileCache::get — Coverage: 87.1% | Lines: 31 | Complexity: 15 Phpdftk\ResourceLoader\HttpFetcher::finaliseResponse — Coverage: 100.0% | Lines: 21 | Complexity: 4 Phpdftk\ResourceLoader\HttpFetcher::resolveUrl — Coverage: 81.2% | Lines: 16 | Complexity: 9 Phpdftk\ResourceLoader\ResourceLoader::fetch — Coverage: 100.0% | Lines: 15 | Complexity: 2 Phpdftk\ResourceLoader\MimeSniffer::looksLikeSvg — Coverage: 85.7% | Lines: 14 | Complexity: 12 Phpdftk\ResourceLoader\Cache\FileCache::set — Coverage: 91.7% | Lines: 12 | Complexity: 2 Phpdftk\ResourceLoader\Cache\FileCache::clear — Coverage: 85.7% | Lines: 7 | Complexity: 4 Phpdftk\ResourceLoader\SsrfGuard::isCgnat — Coverage: 100.0% | Lines: 7 | Complexity: 4 Phpdftk\ResourceLoader\SsrfGuard::isMulticastV6 — Coverage: 83.3% | Lines: 6 | Complexity: 4 Phpdftk\ResourceLoader\HttpFetcher::initialHeaders — Coverage: 100.0% | Lines: 5 | Complexity: 2 Phpdftk\ResourceLoader\SsrfGuard::isMulticastV4 — Coverage: 100.0% | Lines: 5 | Complexity: 3 Phpdftk\ResourceLoader\HttpFetcher::hostOf — Coverage: 75.0% | Lines: 4 | Complexity: 4 Phpdftk\ResourceLoader\Cache\FileCache::__construct — Coverage: 100.0% | Lines: 3 | Complexity: 3 Phpdftk\ResourceLoader\Cache\NullCache::get — Coverage: 100.0% | Lines: 2 | Complexity: 1 Phpdftk\ResourceLoader\Cache\FileCache::directory — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\Cache\FileCache::defaultTtlSeconds — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\Cache\FileCache::pathFor — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\Cache\FileCache::now — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\Cache\NullCache::set — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\FetchOptions::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\FetchResult::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\HttpFetcher::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\HttpFetcher::ssrfGuard — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\HttpFetcher::mimeSniffer — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\HttpFetcher::transport — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\HttpFetcher::isRedirect — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\ResourceLoader::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\ResourceLoader::cache — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\ResourceLoader::ssrfGuard — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\ResourceLoader::defaultOptions — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\ResourceLoader::fetcher — Coverage: 0.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\SsrfGuard::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\SsrfGuard::allowedSchemes — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\SsrfGuard::allowedHosts — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\SsrfGuard::allowsLoopback — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\SsrfGuard::allowsPrivateIp — Coverage: 100.0% | Lines: 1 | Complexity: 1 Phpdftk\ResourceLoader\Transport\RawResponse::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
Phpdftk\ResourceLoader\Transport\CurlTransport::send2100.0%
Phpdftk\ResourceLoader\SsrfGuard::assertSafe23.6589.3%
Phpdftk\ResourceLoader\MimeSniffer::sniff23100.0%
Phpdftk\ResourceLoader\Cache\FileCache::get15.4887.1%
Phpdftk\ResourceLoader\MimeSniffer::looksLikeSvg12.4285.7%
Phpdftk\ResourceLoader\HttpFetcher::resolveUrl9.5381.2%
Phpdftk\ResourceLoader\HttpFetcher::fetch7100.0%
Phpdftk\ResourceLoader\HttpFetcher::hostOf4.2575.0%
Phpdftk\ResourceLoader\SsrfGuard::isMulticastV64.0783.3%
Phpdftk\ResourceLoader\Cache\FileCache::clear4.0585.7%
Phpdftk\ResourceLoader\HttpFetcher::finaliseResponse4100.0%
Phpdftk\ResourceLoader\SsrfGuard::isCgnat4100.0%
Phpdftk\ResourceLoader\Cache\FileCache::__construct3100.0%
Phpdftk\ResourceLoader\SsrfGuard::isMulticastV43100.0%
Phpdftk\ResourceLoader\Cache\FileCache::set2.0091.7%
Phpdftk\ResourceLoader\HttpFetcher::ssrfGuard20.0%
Phpdftk\ResourceLoader\HttpFetcher::mimeSniffer20.0%
Phpdftk\ResourceLoader\HttpFetcher::transport20.0%
Phpdftk\ResourceLoader\HttpFetcher::initialHeaders2100.0%
Phpdftk\ResourceLoader\ResourceLoader::fetch2100.0%
Phpdftk\ResourceLoader\ResourceLoader::cache20.0%
Phpdftk\ResourceLoader\ResourceLoader::ssrfGuard20.0%
Phpdftk\ResourceLoader\ResourceLoader::defaultOptions20.0%
Phpdftk\ResourceLoader\ResourceLoader::fetcher20.0%
Phpdftk\ResourceLoader\Cache\FileCache::directory1100.0%
Phpdftk\ResourceLoader\Cache\FileCache::defaultTtlSeconds1100.0%
Phpdftk\ResourceLoader\Cache\FileCache::pathFor1100.0%
Phpdftk\ResourceLoader\Cache\FileCache::now1100.0%
Phpdftk\ResourceLoader\Cache\NullCache::get1100.0%
Phpdftk\ResourceLoader\Cache\NullCache::set1100.0%
Phpdftk\ResourceLoader\FetchOptions::__construct1100.0%
Phpdftk\ResourceLoader\FetchResult::__construct1100.0%
Phpdftk\ResourceLoader\HttpFetcher::__construct1100.0%
Phpdftk\ResourceLoader\HttpFetcher::isRedirect1100.0%
Phpdftk\ResourceLoader\ResourceLoader::__construct1100.0%
Phpdftk\ResourceLoader\SsrfGuard::__construct1100.0%
Phpdftk\ResourceLoader\SsrfGuard::allowedSchemes1100.0%
Phpdftk\ResourceLoader\SsrfGuard::allowedHosts1100.0%
Phpdftk\ResourceLoader\SsrfGuard::allowsLoopback1100.0%
Phpdftk\ResourceLoader\SsrfGuard::allowsPrivateIp1100.0%
Phpdftk\ResourceLoader\Transport\RawResponse::__construct1100.0%