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 phpMyFAQ\Attachment\File — Coverage: 68.8% | Lines: 96 | Complexity: 45 phpMyFAQ\Attachment\AbstractAttachment — Coverage: 100.0% | Lines: 90 | Complexity: 35 phpMyFAQ\Attachment\AttachmentFactory — Coverage: 98.3% | Lines: 58 | Complexity: 20 phpMyFAQ\Attachment\Filesystem\AbstractFile — Coverage: 92.5% | Lines: 40 | Complexity: 25 phpMyFAQ\Attachment\AttachmentService — Coverage: 100.0% | Lines: 39 | Complexity: 22 phpMyFAQ\Attachment\Filesystem\File\EncryptedFile — Coverage: 96.0% | Lines: 25 | Complexity: 12 phpMyFAQ\Attachment\AttachmentCollection — Coverage: 100.0% | Lines: 12 | Complexity: 3 phpMyFAQ\Attachment\Filesystem\File\VanillaFile — Coverage: 50.0% | Lines: 12 | Complexity: 8 phpMyFAQ\Attachment\Filename — Coverage: 100.0% | Lines: 8 | Complexity: 4 phpMyFAQ\Attachment\Filesystem\AbstractEntry — Coverage: 100.0% | Lines: 4 | Complexity: 5 phpMyFAQ\Attachment\AbstractMimeType — Coverage: 100.0% | Lines: 2 | Complexity: 2

Methods

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

0% 20% 40% 60% 80% 100% 0 5 10 15 Line Coverage (%) Cyclomatic Complexity phpMyFAQ\Attachment\File::save — Coverage: 66.7% | Lines: 27 | Complexity: 11 phpMyFAQ\Attachment\AttachmentFactory::fetchByRecordIdPaginated — Coverage: 100.0% | Lines: 24 | Complexity: 6 phpMyFAQ\Attachment\AbstractAttachment::saveMeta — Coverage: 100.0% | Lines: 20 | Complexity: 3 phpMyFAQ\Attachment\AbstractAttachment::getMeta — Coverage: 100.0% | Lines: 17 | Complexity: 4 phpMyFAQ\Attachment\Filesystem\AbstractFile::deleteDir — Coverage: 93.8% | Lines: 16 | Complexity: 9 phpMyFAQ\Attachment\File::isStorageOk — Coverage: 92.3% | Lines: 13 | Complexity: 6 phpMyFAQ\Attachment\AbstractAttachment::linkedRecords — Coverage: 100.0% | Lines: 12 | Complexity: 4 phpMyFAQ\Attachment\AttachmentFactory::fetchByRecordId — Coverage: 100.0% | Lines: 12 | Complexity: 4 phpMyFAQ\Attachment\AttachmentService::checkGroupPermission — Coverage: 100.0% | Lines: 12 | Complexity: 6 phpMyFAQ\Attachment\AttachmentService::getUserRights — Coverage: 100.0% | Lines: 12 | Complexity: 5 phpMyFAQ\Attachment\AbstractAttachment::mkVirtualHash — Coverage: 100.0% | Lines: 11 | Complexity: 7 phpMyFAQ\Attachment\AttachmentCollection::getBreadcrumbs — Coverage: 100.0% | Lines: 11 | Complexity: 2 phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::copyTo — Coverage: 90.9% | Lines: 11 | Complexity: 5 phpMyFAQ\Attachment\File::delete — Coverage: 70.0% | Lines: 10 | Complexity: 7 phpMyFAQ\Attachment\AttachmentFactory::countByRecordId — Coverage: 100.0% | Lines: 9 | Complexity: 2 phpMyFAQ\Attachment\File::get — Coverage: 22.2% | Lines: 9 | Complexity: 4 phpMyFAQ\Attachment\Filesystem\File\VanillaFile::copyTo — Coverage: 33.3% | Lines: 9 | Complexity: 5 phpMyFAQ\Attachment\AbstractAttachment::postUpdateMeta — Coverage: 100.0% | Lines: 8 | Complexity: 1 phpMyFAQ\Attachment\File::buildStoragePath — Coverage: 100.0% | Lines: 8 | Complexity: 2 phpMyFAQ\Attachment\Filename::compose — Coverage: 100.0% | Lines: 8 | Complexity: 4 phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::getChunk — Coverage: 100.0% | Lines: 8 | Complexity: 5 phpMyFAQ\Attachment\AttachmentFactory::create — Coverage: 100.0% | Lines: 7 | Complexity: 4 phpMyFAQ\Attachment\AttachmentFactory::init — Coverage: 83.3% | Lines: 6 | Complexity: 4 phpMyFAQ\Attachment\AttachmentService::canDownloadAttachment — Coverage: 100.0% | Lines: 6 | Complexity: 4 phpMyFAQ\Attachment\File::rawOut — Coverage: 50.0% | Lines: 6 | Complexity: 3 phpMyFAQ\Attachment\File::getFile — Coverage: 83.3% | Lines: 6 | Complexity: 3 phpMyFAQ\Attachment\Filesystem\AbstractFile::delete — Coverage: 83.3% | Lines: 6 | Complexity: 5 phpMyFAQ\Attachment\Filesystem\AbstractFile::setMode — Coverage: 100.0% | Lines: 6 | Complexity: 2 phpMyFAQ\Attachment\File::buildFilePath — Coverage: 80.0% | Lines: 5 | Complexity: 2 phpMyFAQ\Attachment\File::getStorage — Coverage: 40.0% | Lines: 5 | Complexity: 2 phpMyFAQ\Attachment\AbstractAttachment::__construct — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Attachment\AttachmentService::checkUserPermission — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Attachment\File::usesCloudStorage — Coverage: 50.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Attachment\Filesystem\AbstractFile::__construct — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::__construct — Coverage: 100.0% | Lines: 4 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::readMimeType — Coverage: 100.0% | Lines: 3 | Complexity: 1 phpMyFAQ\Attachment\File::createSubDirs — Coverage: 100.0% | Lines: 3 | Complexity: 3 phpMyFAQ\Attachment\Filesystem\AbstractFile::copyToSimple — Coverage: 66.7% | Lines: 3 | Complexity: 2 phpMyFAQ\Attachment\AbstractAttachment::setKey — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::deleteMeta — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Attachment\AbstractMimeType::guessByExt — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Attachment\AttachmentService::getGenericErrorMessage — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Attachment\Filesystem\AbstractFile::__destruct — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::putChunk — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\File\VanillaFile::getChunk — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Attachment\AbstractAttachment::buildUrl — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::setRecordLang — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::getId — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::setId — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::getRecordId — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::setRecordId — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::getTenantQuotaEnforcer — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::getFilename — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::getMimeType — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::getFilesize — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AbstractAttachment::getRealHash — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AttachmentCollection::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AttachmentService::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AttachmentService::getAttachment — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\AttachmentService::getAttachmentErrorMessage — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\AbstractEntry::moveTo — Coverage: 100.0% | Lines: 1 | Complexity: 2 phpMyFAQ\Attachment\Filesystem\AbstractEntry::isEncrypted — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\AbstractEntry::getPath — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\AbstractEntry::__toString — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\AbstractFile::eof — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\AbstractFile::getMode — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\AbstractFile::isOk — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Attachment\Filesystem\File\VanillaFile::putChunk — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
phpMyFAQ\Attachment\File::save15.4866.7%
phpMyFAQ\Attachment\Filesystem\File\VanillaFile::copyTo12.4133.3%
phpMyFAQ\Attachment\File::get11.5322.2%
phpMyFAQ\Attachment\Filesystem\AbstractFile::deleteDir9.0293.8%
phpMyFAQ\Attachment\File::delete8.3270.0%
phpMyFAQ\Attachment\AbstractAttachment::mkVirtualHash7100.0%
phpMyFAQ\Attachment\File::isStorageOk6.0292.3%
phpMyFAQ\Attachment\AttachmentFactory::fetchByRecordIdPaginated6100.0%
phpMyFAQ\Attachment\AttachmentService::checkGroupPermission6100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::delete5.1283.3%
phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::copyTo5.0290.9%
phpMyFAQ\Attachment\AttachmentService::getUserRights5100.0%
phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::getChunk5100.0%
phpMyFAQ\Attachment\File::rawOut4.1250.0%
phpMyFAQ\Attachment\AttachmentFactory::init4.0783.3%
phpMyFAQ\Attachment\AbstractAttachment::getMeta4100.0%
phpMyFAQ\Attachment\AbstractAttachment::linkedRecords4100.0%
phpMyFAQ\Attachment\AttachmentFactory::create4100.0%
phpMyFAQ\Attachment\AttachmentFactory::fetchByRecordId4100.0%
phpMyFAQ\Attachment\AttachmentService::canDownloadAttachment4100.0%
phpMyFAQ\Attachment\Filename::compose4100.0%
phpMyFAQ\Attachment\File::getFile3.0483.3%
phpMyFAQ\Attachment\AbstractAttachment::saveMeta3100.0%
phpMyFAQ\Attachment\File::createSubDirs3100.0%
phpMyFAQ\Attachment\File::getStorage2.8640.0%
phpMyFAQ\Attachment\File::usesCloudStorage2.5050.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::copyToSimple2.1566.7%
phpMyFAQ\Attachment\File::buildFilePath2.0380.0%
phpMyFAQ\Attachment\AbstractAttachment::__construct2100.0%
phpMyFAQ\Attachment\AbstractMimeType::guessByExt2100.0%
phpMyFAQ\Attachment\AttachmentCollection::getBreadcrumbs2100.0%
phpMyFAQ\Attachment\AttachmentFactory::countByRecordId2100.0%
phpMyFAQ\Attachment\AttachmentService::checkUserPermission2100.0%
phpMyFAQ\Attachment\AttachmentService::getGenericErrorMessage2100.0%
phpMyFAQ\Attachment\File::buildStoragePath2100.0%
phpMyFAQ\Attachment\Filesystem\AbstractEntry::moveTo2100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::__construct2100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::__destruct2100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::setMode2100.0%
phpMyFAQ\Attachment\Filesystem\File\VanillaFile::getChunk2100.0%
phpMyFAQ\Attachment\AbstractAttachment::buildUrl1100.0%
phpMyFAQ\Attachment\AbstractAttachment::setKey1100.0%
phpMyFAQ\Attachment\AbstractAttachment::setRecordLang1100.0%
phpMyFAQ\Attachment\AbstractAttachment::getId1100.0%
phpMyFAQ\Attachment\AbstractAttachment::setId1100.0%
phpMyFAQ\Attachment\AbstractAttachment::getRecordId1100.0%
phpMyFAQ\Attachment\AbstractAttachment::setRecordId1100.0%
phpMyFAQ\Attachment\AbstractAttachment::getTenantQuotaEnforcer1100.0%
phpMyFAQ\Attachment\AbstractAttachment::getFilename1100.0%
phpMyFAQ\Attachment\AbstractAttachment::getMimeType1100.0%
phpMyFAQ\Attachment\AbstractAttachment::getFilesize1100.0%
phpMyFAQ\Attachment\AbstractAttachment::getRealHash1100.0%
phpMyFAQ\Attachment\AbstractAttachment::postUpdateMeta1100.0%
phpMyFAQ\Attachment\AbstractAttachment::readMimeType1100.0%
phpMyFAQ\Attachment\AbstractAttachment::deleteMeta1100.0%
phpMyFAQ\Attachment\AttachmentCollection::__construct1100.0%
phpMyFAQ\Attachment\AttachmentService::__construct1100.0%
phpMyFAQ\Attachment\AttachmentService::getAttachment1100.0%
phpMyFAQ\Attachment\AttachmentService::getAttachmentErrorMessage1100.0%
phpMyFAQ\Attachment\Filesystem\AbstractEntry::isEncrypted1100.0%
phpMyFAQ\Attachment\Filesystem\AbstractEntry::getPath1100.0%
phpMyFAQ\Attachment\Filesystem\AbstractEntry::__toString1100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::eof1100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::getMode1100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::isOk1100.0%
phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::__construct1100.0%
phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::putChunk1100.0%
phpMyFAQ\Attachment\Filesystem\File\VanillaFile::putChunk1100.0%
phpMyFAQ\Attachment\Filesystem\AbstractEntry::copyTo0100.0%
phpMyFAQ\Attachment\Filesystem\AbstractEntry::delete0100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::getChunk0100.0%
phpMyFAQ\Attachment\Filesystem\AbstractFile::putChunk0100.0%