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\Search\SearchService — Coverage: 89.6% | Lines: 173 | Complexity: 40 phpMyFAQ\Search\Search\Elasticsearch — Coverage: 96.2% | Lines: 106 | Complexity: 18 phpMyFAQ\Search\Search\OpenSearch — Coverage: 97.0% | Lines: 101 | Complexity: 14 phpMyFAQ\Search\Database\Pgsql — Coverage: 98.6% | Lines: 71 | Complexity: 23 phpMyFAQ\Search\SearchDatabase — Coverage: 97.2% | Lines: 71 | Complexity: 31 phpMyFAQ\Search\Database\PdoPgsql — Coverage: 98.5% | Lines: 67 | Complexity: 20 phpMyFAQ\Search\Database\Mysqli — Coverage: 100.0% | Lines: 54 | Complexity: 11 phpMyFAQ\Search\Database\PdoMysql — Coverage: 100.0% | Lines: 54 | Complexity: 11 phpMyFAQ\Search\Rating\RatingRepository — Coverage: 98.1% | Lines: 52 | Complexity: 13 phpMyFAQ\Search\SearchResultSet — Coverage: 93.2% | Lines: 44 | Complexity: 26 phpMyFAQ\Search\SearchFactory — Coverage: 80.0% | Lines: 20 | Complexity: 12 phpMyFAQ\Search\Database\PdoSqlsrv — Coverage: 100.0% | Lines: 15 | Complexity: 3 phpMyFAQ\Search\Database\Sqlite3 — Coverage: 100.0% | Lines: 15 | Complexity: 3 phpMyFAQ\Search\Database\PdoSqlite — Coverage: 100.0% | Lines: 14 | Complexity: 3 phpMyFAQ\Search\Database\Sqlsrv — Coverage: 100.0% | Lines: 14 | Complexity: 3 phpMyFAQ\Search\AbstractSearch — 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 Line Coverage (%) Cyclomatic Complexity phpMyFAQ\Search\SearchService::processSearch — Coverage: 98.5% | Lines: 68 | Complexity: 13 phpMyFAQ\Search\Database\Mysqli::search — Coverage: 100.0% | Lines: 47 | Complexity: 9 phpMyFAQ\Search\Database\PdoMysql::search — Coverage: 100.0% | Lines: 47 | Complexity: 9 phpMyFAQ\Search\Search\OpenSearch::search — Coverage: 100.0% | Lines: 41 | Complexity: 1 phpMyFAQ\Search\SearchService::handleTagSearch — Coverage: 92.7% | Lines: 41 | Complexity: 8 phpMyFAQ\Search\Search\Elasticsearch::search — Coverage: 100.0% | Lines: 40 | Complexity: 1 phpMyFAQ\Search\SearchResultSet::reviewResultSet — Coverage: 90.3% | Lines: 31 | Complexity: 14 phpMyFAQ\Search\SearchService::handleFulltextSearch — Coverage: 76.7% | Lines: 30 | Complexity: 6 phpMyFAQ\Search\Search\Elasticsearch::mapHits — Coverage: 86.2% | Lines: 29 | Complexity: 11 phpMyFAQ\Search\Search\Elasticsearch::autoComplete — Coverage: 100.0% | Lines: 29 | Complexity: 1 phpMyFAQ\Search\Search\OpenSearch::autoComplete — Coverage: 100.0% | Lines: 29 | Complexity: 1 phpMyFAQ\Search\Database\PdoPgsql::search — Coverage: 100.0% | Lines: 25 | Complexity: 6 phpMyFAQ\Search\Database\Pgsql::search — Coverage: 100.0% | Lines: 24 | Complexity: 6 phpMyFAQ\Search\Search\OpenSearch::mapHits — Coverage: 87.5% | Lines: 24 | Complexity: 7 phpMyFAQ\Search\Database\PdoPgsql::getMatchingColumnsAsResult — Coverage: 100.0% | Lines: 21 | Complexity: 5 phpMyFAQ\Search\Database\Pgsql::getMatchingColumnsAsResult — Coverage: 100.0% | Lines: 21 | Complexity: 5 phpMyFAQ\Search\SearchDatabase::getMatchClause — Coverage: 100.0% | Lines: 21 | Complexity: 6 phpMyFAQ\Search\Database\PdoSqlsrv::search — Coverage: 100.0% | Lines: 15 | Complexity: 3 phpMyFAQ\Search\Database\Sqlite3::search — Coverage: 100.0% | Lines: 15 | Complexity: 3 phpMyFAQ\Search\Database\PdoSqlite::search — Coverage: 100.0% | Lines: 14 | Complexity: 3 phpMyFAQ\Search\Database\Sqlsrv::search — Coverage: 100.0% | Lines: 14 | Complexity: 3 phpMyFAQ\Search\Database\Pgsql::getMatchingColumns — Coverage: 100.0% | Lines: 13 | Complexity: 6 phpMyFAQ\Search\Rating\RatingRepository::create — Coverage: 100.0% | Lines: 12 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::search — Coverage: 100.0% | Lines: 12 | Complexity: 1 phpMyFAQ\Search\Database\Pgsql::getMatchingOrder — Coverage: 90.9% | Lines: 11 | Complexity: 5 phpMyFAQ\Search\Rating\RatingRepository::update — Coverage: 100.0% | Lines: 11 | Complexity: 1 phpMyFAQ\Search\Database\PdoPgsql::getMatchingOrder — Coverage: 90.0% | Lines: 10 | Complexity: 5 phpMyFAQ\Search\Rating\RatingRepository::getNumberOfVotings — Coverage: 90.0% | Lines: 10 | Complexity: 5 phpMyFAQ\Search\Database\PdoPgsql::getMatchingColumns — Coverage: 100.0% | Lines: 9 | Complexity: 3 phpMyFAQ\Search\SearchDatabase::getConditions — Coverage: 88.9% | Lines: 9 | Complexity: 6 phpMyFAQ\Search\SearchFactory::create — Coverage: 100.0% | Lines: 9 | Complexity: 3 phpMyFAQ\Search\SearchService::__construct — Coverage: 100.0% | Lines: 9 | Complexity: 1 phpMyFAQ\Search\Rating\RatingRepository::fetchByRecordId — Coverage: 100.0% | Lines: 8 | Complexity: 3 phpMyFAQ\Search\SearchFactory::resolveDatabaseType — Coverage: 62.5% | Lines: 8 | Complexity: 6 phpMyFAQ\Search\SearchResultSet::getScore — Coverage: 100.0% | Lines: 8 | Complexity: 7 phpMyFAQ\Search\SearchService::calculateRelatedTags — Coverage: 100.0% | Lines: 8 | Complexity: 4 phpMyFAQ\Search\SearchService::getFormattedSearchResults — Coverage: 0.0% | Lines: 7 | Complexity: 2 phpMyFAQ\Search\Rating\RatingRepository::isVoteAllowed — Coverage: 100.0% | Lines: 6 | Complexity: 1 phpMyFAQ\Search\SearchService::shouldRedirectToSolutionId — Coverage: 100.0% | Lines: 6 | Complexity: 4 phpMyFAQ\Search\Database\Mysqli::setRelevanceRanking — Coverage: 100.0% | Lines: 5 | Complexity: 1 phpMyFAQ\Search\Database\PdoMysql::setRelevanceRanking — Coverage: 100.0% | Lines: 5 | Complexity: 1 phpMyFAQ\Search\Rating\RatingRepository::deleteAll — Coverage: 100.0% | Lines: 4 | Complexity: 1 phpMyFAQ\Search\Search\Elasticsearch::__construct — Coverage: 100.0% | Lines: 4 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::getJoinedColumns — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Search\SearchDatabase::buildInClause — Coverage: 75.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Search\Search\OpenSearch::__construct — Coverage: 100.0% | Lines: 3 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::getJoinedTable — Coverage: 100.0% | Lines: 3 | Complexity: 3 phpMyFAQ\Search\SearchFactory::instantiate — Coverage: 66.7% | Lines: 3 | Complexity: 3 phpMyFAQ\Search\SearchService::renderTagList — Coverage: 100.0% | Lines: 3 | Complexity: 1 phpMyFAQ\Search\Database\Mysqli::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\Database\PdoMysql::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\Database\PdoPgsql::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\Database\Pgsql::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::setResultColumns — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::setTable — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::setJoinedTable — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::setJoinedColumns — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::setMatchingColumns — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::setConditions — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::escapeLikeWildcards — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Search\AbstractSearch::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Rating\RatingRepository::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\Elasticsearch::getCategoryIds — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\Elasticsearch::setCategoryIds — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\Elasticsearch::getLanguage — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\Elasticsearch::setLanguage — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\OpenSearch::getCategoryIds — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\OpenSearch::setCategoryIds — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\OpenSearch::getLanguage — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\Search\OpenSearch::setLanguage — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::getResultColumns — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::getTable — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::getMatchingColumns — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchDatabase::disableRelevance — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchResultSet::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchResultSet::setResultSet — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchResultSet::getResultSet — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchResultSet::getNumberOfResults — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchResultSet::setNumberOfResults — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Search\SearchService::getSolutionIdRedirectUrl — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
phpMyFAQ\Search\SearchResultSet::reviewResultSet14.1890.3%
phpMyFAQ\Search\SearchService::processSearch1398.5%
phpMyFAQ\Search\Search\Elasticsearch::mapHits11.3286.2%
phpMyFAQ\Search\Database\Mysqli::search9100.0%
phpMyFAQ\Search\Database\PdoMysql::search9100.0%
phpMyFAQ\Search\SearchService::handleTagSearch8.0392.7%
phpMyFAQ\Search\SearchFactory::resolveDatabaseType7.9062.5%
phpMyFAQ\Search\Search\OpenSearch::mapHits7.1087.5%
phpMyFAQ\Search\SearchResultSet::getScore7100.0%
phpMyFAQ\Search\SearchService::handleFulltextSearch6.4676.7%
phpMyFAQ\Search\SearchDatabase::getConditions6.0588.9%
phpMyFAQ\Search\Database\PdoPgsql::search6100.0%
phpMyFAQ\Search\Database\Pgsql::search6100.0%
phpMyFAQ\Search\Database\Pgsql::getMatchingColumns6100.0%
phpMyFAQ\Search\SearchDatabase::getMatchClause6100.0%
phpMyFAQ\Search\SearchService::getFormattedSearchResults60.0%
phpMyFAQ\Search\Database\PdoPgsql::getMatchingOrder5.0390.0%
phpMyFAQ\Search\Rating\RatingRepository::getNumberOfVotings5.0390.0%
phpMyFAQ\Search\Database\Pgsql::getMatchingOrder5.0290.9%
phpMyFAQ\Search\Database\PdoPgsql::getMatchingColumnsAsResult5100.0%
phpMyFAQ\Search\Database\Pgsql::getMatchingColumnsAsResult5100.0%
phpMyFAQ\Search\SearchService::calculateRelatedTags4100.0%
phpMyFAQ\Search\SearchService::shouldRedirectToSolutionId4100.0%
phpMyFAQ\Search\SearchFactory::instantiate3.3366.7%
phpMyFAQ\Search\Database\PdoPgsql::getMatchingColumns3100.0%
phpMyFAQ\Search\Database\PdoSqlite::search3100.0%
phpMyFAQ\Search\Database\PdoSqlsrv::search3100.0%
phpMyFAQ\Search\Database\Sqlite3::search3100.0%
phpMyFAQ\Search\Database\Sqlsrv::search3100.0%
phpMyFAQ\Search\Rating\RatingRepository::fetchByRecordId3100.0%
phpMyFAQ\Search\SearchDatabase::getJoinedTable3100.0%
phpMyFAQ\Search\SearchFactory::create3100.0%
phpMyFAQ\Search\SearchDatabase::buildInClause2.0675.0%
phpMyFAQ\Search\SearchDatabase::getJoinedColumns2100.0%
phpMyFAQ\Search\AbstractSearch::__construct1100.0%
phpMyFAQ\Search\Database\Mysqli::__construct1100.0%
phpMyFAQ\Search\Database\Mysqli::setRelevanceRanking1100.0%
phpMyFAQ\Search\Database\PdoMysql::__construct1100.0%
phpMyFAQ\Search\Database\PdoMysql::setRelevanceRanking1100.0%
phpMyFAQ\Search\Database\PdoPgsql::__construct1100.0%
phpMyFAQ\Search\Database\Pgsql::__construct1100.0%
phpMyFAQ\Search\Rating\RatingRepository::__construct1100.0%
phpMyFAQ\Search\Rating\RatingRepository::isVoteAllowed1100.0%
phpMyFAQ\Search\Rating\RatingRepository::create1100.0%
phpMyFAQ\Search\Rating\RatingRepository::update1100.0%
phpMyFAQ\Search\Rating\RatingRepository::deleteAll1100.0%
phpMyFAQ\Search\Search\Elasticsearch::__construct1100.0%
phpMyFAQ\Search\Search\Elasticsearch::search1100.0%
phpMyFAQ\Search\Search\Elasticsearch::getCategoryIds1100.0%
phpMyFAQ\Search\Search\Elasticsearch::setCategoryIds1100.0%
phpMyFAQ\Search\Search\Elasticsearch::autoComplete1100.0%
phpMyFAQ\Search\Search\Elasticsearch::getLanguage1100.0%
phpMyFAQ\Search\Search\Elasticsearch::setLanguage1100.0%
phpMyFAQ\Search\Search\OpenSearch::__construct1100.0%
phpMyFAQ\Search\Search\OpenSearch::search1100.0%
phpMyFAQ\Search\Search\OpenSearch::getCategoryIds1100.0%
phpMyFAQ\Search\Search\OpenSearch::setCategoryIds1100.0%
phpMyFAQ\Search\Search\OpenSearch::autoComplete1100.0%
phpMyFAQ\Search\Search\OpenSearch::getLanguage1100.0%
phpMyFAQ\Search\Search\OpenSearch::setLanguage1100.0%
phpMyFAQ\Search\SearchDatabase::search1100.0%
phpMyFAQ\Search\SearchDatabase::getResultColumns1100.0%
phpMyFAQ\Search\SearchDatabase::setResultColumns1100.0%
phpMyFAQ\Search\SearchDatabase::getTable1100.0%
phpMyFAQ\Search\SearchDatabase::setTable1100.0%
phpMyFAQ\Search\SearchDatabase::setJoinedTable1100.0%
phpMyFAQ\Search\SearchDatabase::setJoinedColumns1100.0%
phpMyFAQ\Search\SearchDatabase::getMatchingColumns1100.0%
phpMyFAQ\Search\SearchDatabase::setMatchingColumns1100.0%
phpMyFAQ\Search\SearchDatabase::setConditions1100.0%
phpMyFAQ\Search\SearchDatabase::disableRelevance1100.0%
phpMyFAQ\Search\SearchDatabase::escapeLikeWildcards1100.0%
phpMyFAQ\Search\SearchResultSet::__construct1100.0%
phpMyFAQ\Search\SearchResultSet::setResultSet1100.0%
phpMyFAQ\Search\SearchResultSet::getResultSet1100.0%
phpMyFAQ\Search\SearchResultSet::getNumberOfResults1100.0%
phpMyFAQ\Search\SearchResultSet::setNumberOfResults1100.0%
phpMyFAQ\Search\SearchService::__construct1100.0%
phpMyFAQ\Search\SearchService::renderTagList1100.0%
phpMyFAQ\Search\SearchService::getSolutionIdRedirectUrl1100.0%