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 phpMyFAQ\Instance\Client — Coverage: 91.8% | Lines: 329 | Complexity: 91 phpMyFAQ\Instance\Search\Elasticsearch — Coverage: 88.7% | Lines: 292 | Complexity: 64 phpMyFAQ\Instance\Search\OpenSearch — Coverage: 86.2% | Lines: 224 | Complexity: 35 phpMyFAQ\Instance\Setup — Coverage: 90.6% | Lines: 117 | Complexity: 23 phpMyFAQ\Instance\Database — Coverage: 96.8% | Lines: 31 | Complexity: 10 phpMyFAQ\Instance\Database\PdoPgsql — Coverage: 95.5% | Lines: 22 | Complexity: 14 phpMyFAQ\Instance\Database\Pgsql — Coverage: 100.0% | Lines: 21 | Complexity: 13 phpMyFAQ\Instance\Database\PdoSqlsrv — Coverage: 100.0% | Lines: 17 | Complexity: 8 phpMyFAQ\Instance\Database\Sqlsrv — Coverage: 100.0% | Lines: 17 | Complexity: 8 phpMyFAQ\Instance\Database\Mysqli — Coverage: 100.0% | Lines: 16 | Complexity: 9 phpMyFAQ\Instance\Database\PdoMysql — Coverage: 100.0% | Lines: 16 | Complexity: 9 phpMyFAQ\Instance\Database\Stopwords — Coverage: 100.0% | Lines: 8 | Complexity: 4 phpMyFAQ\Instance\Database\PdoSqlite — Coverage: 100.0% | Lines: 6 | Complexity: 4 phpMyFAQ\Instance\Database\Sqlite3 — Coverage: 100.0% | Lines: 6 | Complexity: 4 phpMyFAQ\Instance\Main — Coverage: 100.0% | Lines: 2 | Complexity: 1

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\Instance\Client::createClientTablesWithDatabase — Coverage: 91.4% | Lines: 58 | Complexity: 10 phpMyFAQ\Instance\Client::copyBaseDataToSchema — Coverage: 96.6% | Lines: 58 | Complexity: 6 phpMyFAQ\Instance\Client::createClientTables — Coverage: 84.1% | Lines: 44 | Complexity: 2 phpMyFAQ\Instance\Setup::createDatabaseFile — Coverage: 100.0% | Lines: 44 | Complexity: 5 phpMyFAQ\Instance\Search\Elasticsearch::bulkIndexCustomPages — Coverage: 86.5% | Lines: 37 | Complexity: 9 phpMyFAQ\Instance\Search\Elasticsearch::getParams — Coverage: 100.0% | Lines: 34 | Complexity: 1 phpMyFAQ\Instance\Search\Elasticsearch::buildMappings — Coverage: 100.0% | Lines: 34 | Complexity: 1 phpMyFAQ\Instance\Search\Elasticsearch::bulkIndex — Coverage: 82.4% | Lines: 34 | Complexity: 7 phpMyFAQ\Instance\Search\OpenSearch::getParams — Coverage: 100.0% | Lines: 33 | Complexity: 1 phpMyFAQ\Instance\Search\OpenSearch::bulkIndexCustomPages — Coverage: 90.6% | Lines: 32 | Complexity: 6 phpMyFAQ\Instance\Search\OpenSearch::bulkIndex — Coverage: 86.2% | Lines: 29 | Complexity: 5 phpMyFAQ\Instance\Client::insertRows — Coverage: 92.0% | Lines: 25 | Complexity: 6 phpMyFAQ\Instance\Search\Elasticsearch::updateCustomPage — Coverage: 100.0% | Lines: 25 | Complexity: 5 phpMyFAQ\Instance\Database::createTenantDatabase — Coverage: 100.0% | Lines: 24 | Complexity: 6 phpMyFAQ\Instance\Search\OpenSearch::__construct — Coverage: 0.0% | Lines: 24 | Complexity: 1 phpMyFAQ\Instance\Search\OpenSearch::updateCustomPage — Coverage: 100.0% | Lines: 24 | Complexity: 4 phpMyFAQ\Instance\Database\PdoPgsql::createTables — Coverage: 95.2% | Lines: 21 | Complexity: 13 phpMyFAQ\Instance\Search\Elasticsearch::indexCustomPage — Coverage: 100.0% | Lines: 21 | Complexity: 3 phpMyFAQ\Instance\Database\Pgsql::createTables — Coverage: 100.0% | Lines: 20 | Complexity: 12 phpMyFAQ\Instance\Search\OpenSearch::indexCustomPage — Coverage: 100.0% | Lines: 20 | Complexity: 3 phpMyFAQ\Instance\Setup::createLdapFile — Coverage: 100.0% | Lines: 20 | Complexity: 1 phpMyFAQ\Instance\Search\Elasticsearch::update — Coverage: 100.0% | Lines: 18 | Complexity: 2 phpMyFAQ\Instance\Client::getDatabaseCredentials — Coverage: 94.1% | Lines: 17 | Complexity: 7 phpMyFAQ\Instance\Client::insertSeedRows — Coverage: 100.0% | Lines: 17 | Complexity: 1 phpMyFAQ\Instance\Search\Elasticsearch::index — Coverage: 100.0% | Lines: 17 | Complexity: 2 phpMyFAQ\Instance\Database\PdoSqlsrv::createTables — Coverage: 100.0% | Lines: 16 | Complexity: 7 phpMyFAQ\Instance\Database\Sqlsrv::createTables — Coverage: 100.0% | Lines: 16 | Complexity: 7 phpMyFAQ\Instance\Search\OpenSearch::update — Coverage: 100.0% | Lines: 16 | Complexity: 1 phpMyFAQ\Instance\Database\Mysqli::createTables — Coverage: 100.0% | Lines: 15 | Complexity: 8 phpMyFAQ\Instance\Database\PdoMysql::createTables — Coverage: 100.0% | Lines: 15 | Complexity: 8 phpMyFAQ\Instance\Client::extractClientHostnameFromUrl — Coverage: 100.0% | Lines: 14 | Complexity: 12 phpMyFAQ\Instance\Search\OpenSearch::index — Coverage: 100.0% | Lines: 14 | Complexity: 1 phpMyFAQ\Instance\Setup::checkDirs — Coverage: 78.6% | Lines: 14 | Complexity: 9 phpMyFAQ\Instance\Setup::createElasticsearchFile — Coverage: 100.0% | Lines: 14 | Complexity: 2 phpMyFAQ\Instance\Setup::createOpenSearchFile — Coverage: 100.0% | Lines: 14 | Complexity: 2 phpMyFAQ\Instance\Client::createClientTablesWithSchema — Coverage: 84.6% | Lines: 13 | Complexity: 4 phpMyFAQ\Instance\Search\Elasticsearch::putMapping — Coverage: 91.7% | Lines: 12 | Complexity: 5 phpMyFAQ\Instance\Client::collectSeedRows — Coverage: 100.0% | Lines: 10 | Complexity: 3 phpMyFAQ\Instance\Client::moveClientFolder — Coverage: 90.0% | Lines: 10 | Complexity: 4 phpMyFAQ\Instance\Search\OpenSearch::putMapping — Coverage: 100.0% | Lines: 10 | Complexity: 4 phpMyFAQ\Instance\Client::executeSchemaQuery — Coverage: 100.0% | Lines: 9 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::getStemmingLanguage — Coverage: 25.0% | Lines: 8 | Complexity: 4 phpMyFAQ\Instance\Setup::createAnonymousUser — Coverage: 0.0% | Lines: 8 | Complexity: 1 phpMyFAQ\Instance\Client::createClientDatabase — Coverage: 85.7% | Lines: 7 | Complexity: 6 phpMyFAQ\Instance\Database\Stopwords::executeInsertQueries — Coverage: 100.0% | Lines: 7 | Complexity: 3 phpMyFAQ\Instance\Search\Elasticsearch::dropIndex — Coverage: 100.0% | Lines: 7 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::delete — Coverage: 100.0% | Lines: 7 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::deleteCustomPage — Coverage: 100.0% | Lines: 7 | Complexity: 2 phpMyFAQ\Instance\Search\OpenSearch::deleteCustomPage — Coverage: 100.0% | Lines: 7 | Complexity: 2 phpMyFAQ\Instance\Client::quoteIdentifier — Coverage: 66.7% | Lines: 6 | Complexity: 6 phpMyFAQ\Instance\Client::copyTemplateFolder — Coverage: 100.0% | Lines: 6 | Complexity: 2 phpMyFAQ\Instance\Client::deleteClientFolder — Coverage: 83.3% | Lines: 6 | Complexity: 3 phpMyFAQ\Instance\Client::filesystem — Coverage: 100.0% | Lines: 5 | Complexity: 1 phpMyFAQ\Instance\Client::isValidClientHostname — Coverage: 100.0% | Lines: 5 | Complexity: 3 phpMyFAQ\Instance\Database::factory — Coverage: 100.0% | Lines: 5 | Complexity: 2 phpMyFAQ\Instance\Database\PdoSqlite::createTables — Coverage: 100.0% | Lines: 5 | Complexity: 3 phpMyFAQ\Instance\Database\Sqlite3::createTables — Coverage: 100.0% | Lines: 5 | Complexity: 3 phpMyFAQ\Instance\Search\Elasticsearch::getSearchAnalyzer — Coverage: 40.0% | Lines: 5 | Complexity: 4 phpMyFAQ\Instance\Search\OpenSearch::delete — Coverage: 100.0% | Lines: 5 | Complexity: 1 phpMyFAQ\Instance\Client::setClientTemplateSet — Coverage: 75.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Instance\Client::copyConstantsFile — Coverage: 100.0% | Lines: 4 | Complexity: 1 phpMyFAQ\Instance\Search\Elasticsearch::createIndex — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::isAvailable — Coverage: 25.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Instance\Search\OpenSearch::createIndex — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Instance\Search\OpenSearch::isAvailable — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Instance\Client::createClientFolder — Coverage: 100.0% | Lines: 3 | Complexity: 3 phpMyFAQ\Instance\Search\Elasticsearch::__construct — Coverage: 0.0% | Lines: 3 | Complexity: 1 phpMyFAQ\Instance\Search\Elasticsearch::getTokenizer — Coverage: 66.7% | Lines: 3 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::getNumberOfShards — Coverage: 66.7% | Lines: 3 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::getNumberOfReplicas — Coverage: 66.7% | Lines: 3 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::getMapping — Coverage: 33.3% | Lines: 3 | Complexity: 2 phpMyFAQ\Instance\Search\Elasticsearch::unwrapResponse — Coverage: 66.7% | Lines: 3 | Complexity: 2 phpMyFAQ\Instance\Client::__construct — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Instance\Main::createMain — Coverage: 100.0% | Lines: 2 | Complexity: 1 phpMyFAQ\Instance\Client::setClientUrl — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Client::setFileSystem — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Client::createClient — Coverage: 0.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Client::isValidClientUrl — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Client::isMultiSiteWriteable — Coverage: 0.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Client::buildClientFolderPath — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database::getInstance — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\Mysqli::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\PdoMysql::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\PdoPgsql::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\PdoSqlite::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\PdoSqlsrv::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\Pgsql::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\Sqlite3::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\Sqlsrv::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Database\Stopwords::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Search\OpenSearch::getMapping — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Search\OpenSearch::dropIndex — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Setup::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Setup::setRootDir — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Instance\Setup::escapeForSingleQuotedPhpString — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
phpMyFAQ\Instance\Database\PdoPgsql::createTables1395.2%
phpMyFAQ\Instance\Client::extractClientHostnameFromUrl12100.0%
phpMyFAQ\Instance\Database\Pgsql::createTables12100.0%
phpMyFAQ\Instance\Search\Elasticsearch::getStemmingLanguage10.7525.0%
phpMyFAQ\Instance\Client::createClientTablesWithDatabase10.0691.4%
phpMyFAQ\Instance\Setup::checkDirs9.8078.6%
phpMyFAQ\Instance\Search\Elasticsearch::bulkIndexCustomPages9.2086.5%
phpMyFAQ\Instance\Database\Mysqli::createTables8100.0%
phpMyFAQ\Instance\Database\PdoMysql::createTables8100.0%
phpMyFAQ\Instance\Search\Elasticsearch::getSearchAnalyzer7.4640.0%
phpMyFAQ\Instance\Client::quoteIdentifier7.3366.7%
phpMyFAQ\Instance\Search\Elasticsearch::bulkIndex7.2782.4%
phpMyFAQ\Instance\Client::getDatabaseCredentials7.0194.1%
phpMyFAQ\Instance\Database\PdoSqlsrv::createTables7100.0%
phpMyFAQ\Instance\Database\Sqlsrv::createTables7100.0%
phpMyFAQ\Instance\Client::createClientDatabase6.1085.7%
phpMyFAQ\Instance\Search\OpenSearch::bulkIndexCustomPages6.0390.6%
phpMyFAQ\Instance\Client::insertRows6.0292.0%
phpMyFAQ\Instance\Client::copyBaseDataToSchema696.6%
phpMyFAQ\Instance\Database::createTenantDatabase6100.0%
phpMyFAQ\Instance\Search\OpenSearch::bulkIndex5.0786.2%
phpMyFAQ\Instance\Search\Elasticsearch::putMapping5.0191.7%
phpMyFAQ\Instance\Search\Elasticsearch::updateCustomPage5100.0%
phpMyFAQ\Instance\Setup::createDatabaseFile5100.0%
phpMyFAQ\Instance\Client::createClientTablesWithSchema4.0684.6%
phpMyFAQ\Instance\Client::moveClientFolder4.0290.0%
phpMyFAQ\Instance\Search\OpenSearch::putMapping4100.0%
phpMyFAQ\Instance\Search\OpenSearch::updateCustomPage4100.0%
phpMyFAQ\Instance\Search\Elasticsearch::isAvailable3.6925.0%
phpMyFAQ\Instance\Search\Elasticsearch::getMapping3.1933.3%
phpMyFAQ\Instance\Client::deleteClientFolder3.0483.3%
phpMyFAQ\Instance\Client::createClientFolder3100.0%
phpMyFAQ\Instance\Client::collectSeedRows3100.0%
phpMyFAQ\Instance\Client::isValidClientHostname3100.0%
phpMyFAQ\Instance\Database\PdoSqlite::createTables3100.0%
phpMyFAQ\Instance\Database\Sqlite3::createTables3100.0%
phpMyFAQ\Instance\Database\Stopwords::executeInsertQueries3100.0%
phpMyFAQ\Instance\Search\Elasticsearch::indexCustomPage3100.0%
phpMyFAQ\Instance\Search\OpenSearch::indexCustomPage3100.0%
phpMyFAQ\Instance\Search\Elasticsearch::getTokenizer2.1566.7%
phpMyFAQ\Instance\Search\Elasticsearch::getNumberOfShards2.1566.7%
phpMyFAQ\Instance\Search\Elasticsearch::getNumberOfReplicas2.1566.7%
phpMyFAQ\Instance\Search\Elasticsearch::unwrapResponse2.1566.7%
phpMyFAQ\Instance\Client::setClientTemplateSet2.0675.0%
phpMyFAQ\Instance\Client::createClientTables2.0284.1%
phpMyFAQ\Instance\Client::createClient20.0%
phpMyFAQ\Instance\Client::executeSchemaQuery2100.0%
phpMyFAQ\Instance\Client::copyTemplateFolder2100.0%
phpMyFAQ\Instance\Client::isMultiSiteWriteable20.0%
phpMyFAQ\Instance\Database::__construct20.0%
phpMyFAQ\Instance\Database::factory2100.0%
phpMyFAQ\Instance\Search\Elasticsearch::__construct20.0%
phpMyFAQ\Instance\Search\Elasticsearch::createIndex2100.0%
phpMyFAQ\Instance\Search\Elasticsearch::dropIndex2100.0%
phpMyFAQ\Instance\Search\Elasticsearch::index2100.0%
phpMyFAQ\Instance\Search\Elasticsearch::update2100.0%
phpMyFAQ\Instance\Search\Elasticsearch::delete2100.0%
phpMyFAQ\Instance\Search\Elasticsearch::deleteCustomPage2100.0%
phpMyFAQ\Instance\Search\OpenSearch::__construct20.0%
phpMyFAQ\Instance\Search\OpenSearch::createIndex2100.0%
phpMyFAQ\Instance\Search\OpenSearch::isAvailable2100.0%
phpMyFAQ\Instance\Search\OpenSearch::deleteCustomPage2100.0%
phpMyFAQ\Instance\Setup::createAnonymousUser20.0%
phpMyFAQ\Instance\Setup::createElasticsearchFile2100.0%
phpMyFAQ\Instance\Setup::createOpenSearchFile2100.0%
phpMyFAQ\Instance\Client::__construct1100.0%
phpMyFAQ\Instance\Client::setClientUrl1100.0%
phpMyFAQ\Instance\Client::setFileSystem1100.0%
phpMyFAQ\Instance\Client::filesystem1100.0%
phpMyFAQ\Instance\Client::insertSeedRows1100.0%
phpMyFAQ\Instance\Client::copyConstantsFile1100.0%
phpMyFAQ\Instance\Client::isValidClientUrl1100.0%
phpMyFAQ\Instance\Client::buildClientFolderPath1100.0%
phpMyFAQ\Instance\Database::getInstance1100.0%
phpMyFAQ\Instance\Database\Mysqli::__construct1100.0%
phpMyFAQ\Instance\Database\PdoMysql::__construct1100.0%
phpMyFAQ\Instance\Database\PdoPgsql::__construct1100.0%
phpMyFAQ\Instance\Database\PdoSqlite::__construct1100.0%
phpMyFAQ\Instance\Database\PdoSqlsrv::__construct1100.0%
phpMyFAQ\Instance\Database\Pgsql::__construct1100.0%
phpMyFAQ\Instance\Database\Sqlite3::__construct1100.0%
phpMyFAQ\Instance\Database\Sqlsrv::__construct1100.0%
phpMyFAQ\Instance\Database\Stopwords::__construct1100.0%
phpMyFAQ\Instance\Main::createMain1100.0%
phpMyFAQ\Instance\Search\Elasticsearch::getParams1100.0%
phpMyFAQ\Instance\Search\Elasticsearch::buildMappings1100.0%
phpMyFAQ\Instance\Search\OpenSearch::getParams1100.0%
phpMyFAQ\Instance\Search\OpenSearch::getMapping1100.0%
phpMyFAQ\Instance\Search\OpenSearch::dropIndex1100.0%
phpMyFAQ\Instance\Search\OpenSearch::index1100.0%
phpMyFAQ\Instance\Search\OpenSearch::update1100.0%
phpMyFAQ\Instance\Search\OpenSearch::delete1100.0%
phpMyFAQ\Instance\Setup::__construct1100.0%
phpMyFAQ\Instance\Setup::setRootDir1100.0%
phpMyFAQ\Instance\Setup::escapeForSingleQuotedPhpString1100.0%
phpMyFAQ\Instance\Setup::createLdapFile1100.0%