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 phpMyFAQ\Faq\FaqRepository — Coverage: 99.3% | Lines: 423 | Complexity: 74 phpMyFAQ\Faq\Statistics — Coverage: 100.0% | Lines: 251 | Complexity: 38 phpMyFAQ\Faq\Permission — Coverage: 83.1% | Lines: 89 | Complexity: 34 phpMyFAQ\Faq\FaqDisplayService — Coverage: 90.9% | Lines: 88 | Complexity: 34 phpMyFAQ\Faq\QueryHelper — Coverage: 91.4% | Lines: 81 | Complexity: 34 phpMyFAQ\Faq\Import — Coverage: 97.3% | Lines: 73 | Complexity: 21 phpMyFAQ\Faq\FaqCreationService — Coverage: 83.9% | Lines: 31 | Complexity: 10 phpMyFAQ\Faq\MetaData — Coverage: 87.0% | Lines: 23 | Complexity: 6 phpMyFAQ\Faq\QuestionService — Coverage: 100.0% | Lines: 17 | Complexity: 8 phpMyFAQ\Faq\RecordVisibility — Coverage: 100.0% | Lines: 13 | Complexity: 11

 

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

Methods

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

0% 20% 40% 60% 80% 100% 0 5 10 15 20 Line Coverage (%) Cyclomatic Complexity phpMyFAQ\Faq\FaqRepository::deleteByIdAndLanguage — Coverage: 100.0% | Lines: 47 | Complexity: 2 phpMyFAQ\Faq\Import::import — Coverage: 97.7% | Lines: 43 | Complexity: 4 phpMyFAQ\Faq\Statistics::getTopVotedData — Coverage: 100.0% | Lines: 40 | Complexity: 6 phpMyFAQ\Faq\Statistics::getTopTenData — Coverage: 100.0% | Lines: 38 | Complexity: 4 phpMyFAQ\Faq\Permission::createPermissionArray — Coverage: 58.3% | Lines: 36 | Complexity: 16 phpMyFAQ\Faq\QueryHelper::getQuery — Coverage: 80.0% | Lines: 35 | Complexity: 16 phpMyFAQ\Faq\Statistics::getLatestData — Coverage: 100.0% | Lines: 35 | Complexity: 4 phpMyFAQ\Faq\Statistics::getTrendingData — Coverage: 100.0% | Lines: 35 | Complexity: 4 phpMyFAQ\Faq\FaqRepository::fetchRowBySolutionId — Coverage: 100.0% | Lines: 31 | Complexity: 7 phpMyFAQ\Faq\Statistics::getTopTen — Coverage: 100.0% | Lines: 29 | Complexity: 4 phpMyFAQ\Faq\Statistics::buildStatisticsQuery — Coverage: 100.0% | Lines: 29 | Complexity: 5 phpMyFAQ\Faq\Permission::add — Coverage: 100.0% | Lines: 28 | Complexity: 7 phpMyFAQ\Faq\FaqRepository::update — Coverage: 100.0% | Lines: 26 | Complexity: 5 phpMyFAQ\Faq\FaqRepository::buildConditionWhereClause — Coverage: 87.5% | Lines: 24 | Complexity: 13 phpMyFAQ\Faq\FaqCreationService::prepareAddFaqData — Coverage: 78.3% | Lines: 23 | Complexity: 3 phpMyFAQ\Faq\FaqRepository::insert — Coverage: 100.0% | Lines: 23 | Complexity: 4 phpMyFAQ\Faq\FaqRepository::getIdFromSolutionId — Coverage: 100.0% | Lines: 22 | Complexity: 2 phpMyFAQ\Faq\Import::validateCSV — Coverage: 95.5% | Lines: 22 | Complexity: 13 phpMyFAQ\Faq\FaqRepository::fetchFaqByIdAndCategoryId — Coverage: 100.0% | Lines: 20 | Complexity: 3 phpMyFAQ\Faq\Permission::get — Coverage: 100.0% | Lines: 20 | Complexity: 7 phpMyFAQ\Faq\FaqRepository::fetchAllFaqs — Coverage: 100.0% | Lines: 19 | Complexity: 1 phpMyFAQ\Faq\FaqRepository::fetchAvailableFaqsByCategoryId — Coverage: 100.0% | Lines: 18 | Complexity: 1 phpMyFAQ\Faq\FaqRepository::fetchFaqsByIds — Coverage: 100.0% | Lines: 18 | Complexity: 2 phpMyFAQ\Faq\FaqRepository::countRenderableFaqsByCategoryId — Coverage: 100.0% | Lines: 18 | Complexity: 3 phpMyFAQ\Faq\FaqDisplayService::__construct — Coverage: 100.0% | Lines: 17 | Complexity: 1 phpMyFAQ\Faq\FaqRepository::queryRenderableFaqsByIds — Coverage: 100.0% | Lines: 17 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::processAnswer — Coverage: 93.8% | Lines: 16 | Complexity: 5 phpMyFAQ\Faq\FaqRepository::isFaqVisibleForUser — Coverage: 100.0% | Lines: 16 | Complexity: 1 phpMyFAQ\Faq\FaqRepository::isActive — Coverage: 100.0% | Lines: 16 | Complexity: 5 phpMyFAQ\Faq\FaqRepository::fetchQuestion — Coverage: 100.0% | Lines: 16 | Complexity: 4 phpMyFAQ\Faq\FaqRepository::queryRenderableFaqsByCategoryId — Coverage: 100.0% | Lines: 16 | Complexity: 1 phpMyFAQ\Faq\MetaData::save — Coverage: 81.2% | Lines: 16 | Complexity: 2 phpMyFAQ\Faq\Statistics::getTrending — Coverage: 100.0% | Lines: 15 | Complexity: 2 phpMyFAQ\Faq\FaqRepository::getFaqResult — Coverage: 100.0% | Lines: 14 | Complexity: 4 phpMyFAQ\Faq\FaqRepository::fetchStickyFaqs — Coverage: 100.0% | Lines: 13 | Complexity: 1 phpMyFAQ\Faq\Statistics::totalFaqs — Coverage: 100.0% | Lines: 12 | Complexity: 3 phpMyFAQ\Faq\FaqRepository::getSolutionIdFromId — Coverage: 100.0% | Lines: 11 | Complexity: 2 phpMyFAQ\Faq\FaqRepository::fetchKeywords — Coverage: 100.0% | Lines: 11 | Complexity: 3 phpMyFAQ\Faq\QueryHelper::queryPermissionExistsAny — Coverage: 100.0% | Lines: 11 | Complexity: 3 phpMyFAQ\Faq\Statistics::getLatest — Coverage: 100.0% | Lines: 11 | Complexity: 2 phpMyFAQ\Faq\FaqRepository::getNextSolutionId — Coverage: 100.0% | Lines: 10 | Complexity: 4 phpMyFAQ\Faq\QuestionService::prepareAskQuestionData — Coverage: 100.0% | Lines: 10 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::processQuestion — Coverage: 88.9% | Lines: 9 | Complexity: 4 phpMyFAQ\Faq\FaqDisplayService::getRelatedFaqs — Coverage: 77.8% | Lines: 9 | Complexity: 2 phpMyFAQ\Faq\FaqRepository::hasTranslation — Coverage: 100.0% | Lines: 9 | Complexity: 1 phpMyFAQ\Faq\QueryHelper::getCategoryIdWhereSequence — Coverage: 100.0% | Lines: 9 | Complexity: 3 phpMyFAQ\Faq\FaqDisplayService::getRenderedCategoryPath — Coverage: 100.0% | Lines: 8 | Complexity: 5 phpMyFAQ\Faq\QueryHelper::queryPermission — Coverage: 100.0% | Lines: 8 | Complexity: 4 phpMyFAQ\Faq\FaqDisplayService::processHighlight — Coverage: 100.0% | Lines: 7 | Complexity: 1 phpMyFAQ\Faq\FaqRepository::fetchAllRows — Coverage: 100.0% | Lines: 7 | Complexity: 3 phpMyFAQ\Faq\FaqDisplayService::getAttachmentList — Coverage: 33.3% | Lines: 6 | Complexity: 4 phpMyFAQ\Faq\QueryHelper::userGrantExists — Coverage: 100.0% | Lines: 6 | Complexity: 2 phpMyFAQ\Faq\RecordVisibility::isWithinPublicationWindow — Coverage: 100.0% | Lines: 6 | Complexity: 4 phpMyFAQ\Faq\FaqDisplayService::loadFaq — Coverage: 100.0% | Lines: 5 | Complexity: 3 phpMyFAQ\Faq\QueryHelper::groupGrantExists — Coverage: 100.0% | Lines: 5 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::shouldApplyHighlighting — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Faq\Import::parseCSV — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Faq\Permission::delete — Coverage: 100.0% | Lines: 4 | Complexity: 3 phpMyFAQ\Faq\QueryHelper::queryPermissionExistsAll — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Faq\RecordVisibility::isPermitted — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Faq\FaqCreationService::__construct — Coverage: 100.0% | Lines: 3 | Complexity: 1 phpMyFAQ\Faq\FaqCreationService::canUserAddFaq — Coverage: 100.0% | Lines: 3 | Complexity: 2 phpMyFAQ\Faq\Import::isCSVFile — Coverage: 100.0% | Lines: 3 | Complexity: 1 phpMyFAQ\Faq\QuestionService::canUserAskQuestion — Coverage: 100.0% | Lines: 3 | Complexity: 2 phpMyFAQ\Faq\Statistics::__construct — Coverage: 100.0% | Lines: 3 | Complexity: 2 phpMyFAQ\Faq\MetaData::setFaqId — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Faq\MetaData::setFaqLanguage — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Faq\MetaData::setCategories — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Faq\QueryHelper::normalizeIdList — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Faq\QuestionService::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Faq\Statistics::setUser — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Faq\Statistics::setGroups — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Faq\FaqCreationService::getDefaultUserEmail — Coverage: 100.0% | Lines: 1 | Complexity: 2 phpMyFAQ\Faq\FaqCreationService::getDefaultUserName — Coverage: 100.0% | Lines: 1 | Complexity: 2 phpMyFAQ\Faq\FaqDisplayService::isExpired — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::getNumberOfComments — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::getCommentsData — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::getAvailableLanguages — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::getTagsHtml — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::getRating — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\FaqDisplayService::getFaqHelper — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\FaqRepository::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\Import::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\MetaData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\Permission::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\QueryHelper::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\QuestionService::getDefaultUserEmail — Coverage: 100.0% | Lines: 1 | Complexity: 2 phpMyFAQ\Faq\QuestionService::getDefaultUserName — Coverage: 100.0% | Lines: 1 | Complexity: 2 phpMyFAQ\Faq\RecordVisibility::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Faq\RecordVisibility::isVisible — Coverage: 100.0% | Lines: 1 | Complexity: 3 phpMyFAQ\Faq\RecordVisibility::isActivated — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
phpMyFAQ\Faq\Permission::createPermissionArray34.5258.3%
phpMyFAQ\Faq\QueryHelper::getQuery18.0580.0%
phpMyFAQ\Faq\FaqRepository::buildConditionWhereClause13.3387.5%
phpMyFAQ\Faq\Import::validateCSV1395.5%
phpMyFAQ\Faq\FaqDisplayService::getAttachmentList8.7433.3%
phpMyFAQ\Faq\FaqRepository::fetchRowBySolutionId7100.0%
phpMyFAQ\Faq\Permission::add7100.0%
phpMyFAQ\Faq\Permission::get7100.0%
phpMyFAQ\Faq\Statistics::getTopVotedData6100.0%
phpMyFAQ\Faq\FaqDisplayService::processAnswer5.0193.8%
phpMyFAQ\Faq\FaqDisplayService::getRenderedCategoryPath5100.0%
phpMyFAQ\Faq\FaqRepository::isActive5100.0%
phpMyFAQ\Faq\FaqRepository::update5100.0%
phpMyFAQ\Faq\Statistics::buildStatisticsQuery5100.0%
phpMyFAQ\Faq\FaqDisplayService::processQuestion4.0288.9%
phpMyFAQ\Faq\FaqRepository::getNextSolutionId4100.0%
phpMyFAQ\Faq\FaqRepository::fetchQuestion4100.0%
phpMyFAQ\Faq\FaqRepository::getFaqResult4100.0%
phpMyFAQ\Faq\FaqRepository::insert4100.0%
phpMyFAQ\Faq\Import::import497.7%
phpMyFAQ\Faq\QueryHelper::queryPermission4100.0%
phpMyFAQ\Faq\RecordVisibility::isWithinPublicationWindow4100.0%
phpMyFAQ\Faq\Statistics::getTopTen4100.0%
phpMyFAQ\Faq\Statistics::getLatestData4100.0%
phpMyFAQ\Faq\Statistics::getTrendingData4100.0%
phpMyFAQ\Faq\Statistics::getTopTenData4100.0%
phpMyFAQ\Faq\FaqCreationService::prepareAddFaqData3.0978.3%
phpMyFAQ\Faq\FaqDisplayService::loadFaq3100.0%
phpMyFAQ\Faq\FaqRepository::fetchKeywords3100.0%
phpMyFAQ\Faq\FaqRepository::fetchFaqByIdAndCategoryId3100.0%
phpMyFAQ\Faq\FaqRepository::countRenderableFaqsByCategoryId3100.0%
phpMyFAQ\Faq\FaqRepository::fetchAllRows3100.0%
phpMyFAQ\Faq\Permission::delete3100.0%
phpMyFAQ\Faq\QueryHelper::queryPermissionExistsAny3100.0%
phpMyFAQ\Faq\QueryHelper::getCategoryIdWhereSequence3100.0%
phpMyFAQ\Faq\RecordVisibility::isVisible3100.0%
phpMyFAQ\Faq\Statistics::totalFaqs3100.0%
phpMyFAQ\Faq\FaqDisplayService::getRelatedFaqs2.0477.8%
phpMyFAQ\Faq\MetaData::save2.0381.2%
phpMyFAQ\Faq\FaqCreationService::canUserAddFaq2100.0%
phpMyFAQ\Faq\FaqCreationService::getDefaultUserEmail2100.0%
phpMyFAQ\Faq\FaqCreationService::getDefaultUserName2100.0%
phpMyFAQ\Faq\FaqDisplayService::shouldApplyHighlighting2100.0%
phpMyFAQ\Faq\FaqRepository::getSolutionIdFromId2100.0%
phpMyFAQ\Faq\FaqRepository::getIdFromSolutionId2100.0%
phpMyFAQ\Faq\FaqRepository::fetchFaqsByIds2100.0%
phpMyFAQ\Faq\FaqRepository::deleteByIdAndLanguage2100.0%
phpMyFAQ\Faq\Import::parseCSV2100.0%
phpMyFAQ\Faq\QueryHelper::queryPermissionExistsAll2100.0%
phpMyFAQ\Faq\QueryHelper::userGrantExists2100.0%
phpMyFAQ\Faq\QueryHelper::normalizeIdList2100.0%
phpMyFAQ\Faq\QuestionService::canUserAskQuestion2100.0%
phpMyFAQ\Faq\QuestionService::getDefaultUserEmail2100.0%
phpMyFAQ\Faq\QuestionService::getDefaultUserName2100.0%
phpMyFAQ\Faq\RecordVisibility::isPermitted2100.0%
phpMyFAQ\Faq\Statistics::__construct2100.0%
phpMyFAQ\Faq\Statistics::getLatest2100.0%
phpMyFAQ\Faq\Statistics::getTrending2100.0%
phpMyFAQ\Faq\FaqCreationService::__construct1100.0%
phpMyFAQ\Faq\FaqDisplayService::__construct1100.0%
phpMyFAQ\Faq\FaqDisplayService::isExpired1100.0%
phpMyFAQ\Faq\FaqDisplayService::getNumberOfComments1100.0%
phpMyFAQ\Faq\FaqDisplayService::getCommentsData1100.0%
phpMyFAQ\Faq\FaqDisplayService::getAvailableLanguages1100.0%
phpMyFAQ\Faq\FaqDisplayService::getTagsHtml1100.0%
phpMyFAQ\Faq\FaqDisplayService::getRating1100.0%
phpMyFAQ\Faq\FaqDisplayService::getFaqHelper1100.0%
phpMyFAQ\Faq\FaqDisplayService::processHighlight1100.0%
phpMyFAQ\Faq\FaqRepository::__construct1100.0%
phpMyFAQ\Faq\FaqRepository::hasTranslation1100.0%
phpMyFAQ\Faq\FaqRepository::isFaqVisibleForUser1100.0%
phpMyFAQ\Faq\FaqRepository::fetchAvailableFaqsByCategoryId1100.0%
phpMyFAQ\Faq\FaqRepository::fetchStickyFaqs1100.0%
phpMyFAQ\Faq\FaqRepository::fetchAllFaqs1100.0%
phpMyFAQ\Faq\FaqRepository::queryRenderableFaqsByCategoryId1100.0%
phpMyFAQ\Faq\FaqRepository::queryRenderableFaqsByIds1100.0%
phpMyFAQ\Faq\Import::__construct1100.0%
phpMyFAQ\Faq\Import::isCSVFile1100.0%
phpMyFAQ\Faq\MetaData::__construct1100.0%
phpMyFAQ\Faq\MetaData::setFaqId1100.0%
phpMyFAQ\Faq\MetaData::setFaqLanguage1100.0%
phpMyFAQ\Faq\MetaData::setCategories1100.0%
phpMyFAQ\Faq\Permission::__construct1100.0%
phpMyFAQ\Faq\QueryHelper::__construct1100.0%
phpMyFAQ\Faq\QueryHelper::groupGrantExists1100.0%
phpMyFAQ\Faq\QuestionService::__construct1100.0%
phpMyFAQ\Faq\QuestionService::prepareAskQuestionData1100.0%
phpMyFAQ\Faq\RecordVisibility::__construct1100.0%
phpMyFAQ\Faq\RecordVisibility::isActivated1100.0%
phpMyFAQ\Faq\Statistics::setUser1100.0%
phpMyFAQ\Faq\Statistics::setGroups1100.0%