Classes

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

0% 20% 40% 60% 80% 100% 0 20 40 60 80 Line Coverage (%) Cyclomatic Complexity phpMyFAQ\Configuration\Storage\RedisConfigurationStore — Coverage: 66.9% | Lines: 121 | Complexity: 56 phpMyFAQ\Configuration\Storage\HybridConfigurationStore — Coverage: 60.0% | Lines: 80 | Complexity: 27 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore — Coverage: 96.1% | Lines: 77 | Complexity: 16 phpMyFAQ\Configuration\LdapSettings — Coverage: 100.0% | Lines: 52 | Complexity: 13 phpMyFAQ\Configuration\ConfigurationRepository — Coverage: 100.0% | Lines: 42 | Complexity: 11 phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache — Coverage: 89.7% | Lines: 39 | Complexity: 18 phpMyFAQ\Configuration\DatabaseConfiguration — Coverage: 96.6% | Lines: 29 | Complexity: 12 phpMyFAQ\Configuration\LdapConfiguration — Coverage: 100.0% | Lines: 29 | Complexity: 9 phpMyFAQ\Configuration\MultisiteConfigurationLocator — Coverage: 100.0% | Lines: 27 | Complexity: 12 phpMyFAQ\Configuration\Storage\ConfigurationStorageSettingsResolver — Coverage: 100.0% | Lines: 15 | Complexity: 5 phpMyFAQ\Configuration\MailSettings — Coverage: 100.0% | Lines: 11 | Complexity: 6 phpMyFAQ\Configuration\ElasticsearchConfiguration — Coverage: 100.0% | Lines: 9 | Complexity: 3 phpMyFAQ\Configuration\OpenSearchConfiguration — Coverage: 100.0% | Lines: 9 | Complexity: 3 phpMyFAQ\Configuration\UrlSettings — Coverage: 100.0% | Lines: 5 | Complexity: 5 phpMyFAQ\Configuration\LayoutSettings — Coverage: 100.0% | Lines: 3 | Complexity: 3 phpMyFAQ\Configuration\SecuritySettings — Coverage: 100.0% | Lines: 3 | Complexity: 3 phpMyFAQ\Configuration\SearchSettings — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Configuration\Storage\ConfigurationStorageSettings — 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 25 Line Coverage (%) Cyclomatic Complexity phpMyFAQ\Configuration\Storage\RedisConfigurationStore::createRedisClient — Coverage: 40.8% | Lines: 49 | Complexity: 22 phpMyFAQ\Configuration\LdapConfiguration::__construct — Coverage: 100.0% | Lines: 23 | Complexity: 3 phpMyFAQ\Configuration\Storage\HybridConfigurationStore::fetchAll — Coverage: 86.4% | Lines: 22 | Complexity: 8 phpMyFAQ\Configuration\ConfigurationRepository::__construct — Coverage: 100.0% | Lines: 21 | Complexity: 3 phpMyFAQ\Configuration\DatabaseConfiguration::__construct — Coverage: 95.2% | Lines: 21 | Complexity: 4 phpMyFAQ\Configuration\LdapSettings::buildServers — Coverage: 100.0% | Lines: 20 | Complexity: 5 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchValues — Coverage: 85.0% | Lines: 20 | Complexity: 6 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::warmFromRows — Coverage: 94.4% | Lines: 18 | Complexity: 8 phpMyFAQ\Configuration\MultisiteConfigurationLocator::locateConfigurationDirectory — Coverage: 100.0% | Lines: 15 | Complexity: 6 phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::read — Coverage: 86.7% | Lines: 15 | Complexity: 8 phpMyFAQ\Configuration\Storage\ConfigurationStorageSettingsResolver::resolve — Coverage: 100.0% | Lines: 14 | Complexity: 4 phpMyFAQ\Configuration\Storage\HybridConfigurationStore::renameKey — Coverage: 0.0% | Lines: 14 | Complexity: 4 phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::warm — Coverage: 84.6% | Lines: 13 | Complexity: 5 phpMyFAQ\Configuration\Storage\HybridConfigurationStore::updateConfigValue — Coverage: 92.3% | Lines: 13 | Complexity: 4 phpMyFAQ\Configuration\Storage\HybridConfigurationStore::insert — Coverage: 46.2% | Lines: 13 | Complexity: 4 phpMyFAQ\Configuration\Storage\HybridConfigurationStore::delete — Coverage: 46.2% | Lines: 13 | Complexity: 4 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::fetchAll — Coverage: 92.3% | Lines: 13 | Complexity: 5 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::renameKey — Coverage: 76.9% | Lines: 13 | Complexity: 5 phpMyFAQ\Configuration\MultisiteConfigurationLocator::extractTenantFromSubdomain — Coverage: 100.0% | Lines: 12 | Complexity: 6 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchValue — Coverage: 100.0% | Lines: 11 | Complexity: 3 phpMyFAQ\Configuration\ConfigurationRepository::updateFaqDataContentById — Coverage: 100.0% | Lines: 10 | Complexity: 1 phpMyFAQ\Configuration\LdapSettings::buildConfig — Coverage: 100.0% | Lines: 10 | Complexity: 1 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::updateConfigValue — Coverage: 100.0% | Lines: 10 | Complexity: 1 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::insert — Coverage: 100.0% | Lines: 10 | Complexity: 1 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::renameKey — Coverage: 100.0% | Lines: 10 | Complexity: 1 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getInstalledRedisVersion — Coverage: 80.0% | Lines: 10 | Complexity: 5 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::delete — Coverage: 100.0% | Lines: 9 | Complexity: 1 phpMyFAQ\Configuration\LdapSettings::getLdapGroupConfig — Coverage: 100.0% | Lines: 8 | Complexity: 3 phpMyFAQ\Configuration\ElasticsearchConfiguration::__construct — Coverage: 100.0% | Lines: 7 | Complexity: 1 phpMyFAQ\Configuration\OpenSearchConfiguration::__construct — Coverage: 100.0% | Lines: 7 | Complexity: 1 phpMyFAQ\Configuration\ConfigurationRepository::getFaqDataContents — Coverage: 100.0% | Lines: 6 | Complexity: 2 phpMyFAQ\Configuration\LdapSettings::getLdapMapping — Coverage: 100.0% | Lines: 6 | Complexity: 1 phpMyFAQ\Configuration\LdapSettings::getLdapOptions — Coverage: 100.0% | Lines: 6 | Complexity: 1 phpMyFAQ\Configuration\MailSettings::getProvider — Coverage: 100.0% | Lines: 6 | Complexity: 2 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchAll — Coverage: 100.0% | Lines: 6 | Complexity: 2 phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::__construct — Coverage: 100.0% | Lines: 5 | Complexity: 1 phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::createIfEnabled — Coverage: 100.0% | Lines: 5 | Complexity: 3 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::delete — Coverage: 60.0% | Lines: 5 | Complexity: 3 phpMyFAQ\Configuration\MailSettings::getNoReplyEmail — Coverage: 100.0% | Lines: 4 | Complexity: 3 phpMyFAQ\Configuration\Storage\HybridConfigurationStore::resolveRedisStore — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::updateConfigValue — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::insert — Coverage: 50.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getRedisClient — Coverage: 100.0% | Lines: 3 | Complexity: 2 phpMyFAQ\Configuration\UrlSettings::getDefaultUrl — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Configuration\UrlSettings::getAllowedMediaHosts — Coverage: 100.0% | Lines: 2 | Complexity: 2 phpMyFAQ\Configuration\ConfigurationRepository::updateConfigValue — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\ConfigurationRepository::fetchAll — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\ConfigurationRepository::insert — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\ConfigurationRepository::delete — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\ConfigurationRepository::renameKey — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getServer — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getPort — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getUser — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getPassword — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getDatabase — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getPrefix — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getType — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\DatabaseConfiguration::getSchema — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\ElasticsearchConfiguration::getHosts — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\ElasticsearchConfiguration::getIndex — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LayoutSettings::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LayoutSettings::getTemplateSet — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LayoutSettings::getCustomCss — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapConfiguration::getMainServer — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapConfiguration::getMainPort — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapConfiguration::getMainUser — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapConfiguration::getMainPassword — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapConfiguration::getMainBase — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapConfiguration::getServers — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapSettings::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\LdapSettings::isActive — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\MailSettings::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\OpenSearchConfiguration::getHosts — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\OpenSearchConfiguration::getIndex — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\SearchSettings::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\SearchSettings::isElasticsearchActive — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\SecuritySettings::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\SecuritySettings::isSignInWithMicrosoftActive — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\SecuritySettings::isSignInWithKeycloakActive — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\Storage\ConfigurationStorageSettings::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\Storage\ConfigurationStorageSettingsResolver::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::clear — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\Storage\HybridConfigurationStore::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getHashKey — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Configuration\UrlSettings::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::createRedisClient122.3340.8%
phpMyFAQ\Configuration\Storage\HybridConfigurationStore::renameKey200.0%
phpMyFAQ\Configuration\Storage\HybridConfigurationStore::fetchAll8.1686.4%
phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::read8.1586.7%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::warmFromRows8.0194.4%
phpMyFAQ\Configuration\Storage\HybridConfigurationStore::insert6.5046.2%
phpMyFAQ\Configuration\Storage\HybridConfigurationStore::delete6.5046.2%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchValues6.1285.0%
phpMyFAQ\Configuration\MultisiteConfigurationLocator::locateConfigurationDirectory6100.0%
phpMyFAQ\Configuration\MultisiteConfigurationLocator::extractTenantFromSubdomain6100.0%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::renameKey5.3176.9%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getInstalledRedisVersion5.2080.0%
phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::warm5.0984.6%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::fetchAll5.0192.3%
phpMyFAQ\Configuration\LdapSettings::buildServers5100.0%
phpMyFAQ\Configuration\Storage\HybridConfigurationStore::updateConfigValue4.0192.3%
phpMyFAQ\Configuration\DatabaseConfiguration::__construct495.2%
phpMyFAQ\Configuration\Storage\ConfigurationStorageSettingsResolver::resolve4100.0%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::delete3.5860.0%
phpMyFAQ\Configuration\ConfigurationRepository::__construct3100.0%
phpMyFAQ\Configuration\LdapConfiguration::__construct3100.0%
phpMyFAQ\Configuration\LdapSettings::getLdapGroupConfig3100.0%
phpMyFAQ\Configuration\MailSettings::getNoReplyEmail3100.0%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchValue3100.0%
phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::createIfEnabled3100.0%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::insert2.5050.0%
phpMyFAQ\Configuration\ConfigurationRepository::getFaqDataContents2100.0%
phpMyFAQ\Configuration\MailSettings::getProvider2100.0%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchAll2100.0%
phpMyFAQ\Configuration\Storage\HybridConfigurationStore::resolveRedisStore2100.0%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::updateConfigValue2100.0%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getRedisClient2100.0%
phpMyFAQ\Configuration\UrlSettings::getDefaultUrl2100.0%
phpMyFAQ\Configuration\UrlSettings::getAllowedMediaHosts2100.0%
phpMyFAQ\Configuration\ConfigurationRepository::updateConfigValue1100.0%
phpMyFAQ\Configuration\ConfigurationRepository::fetchAll1100.0%
phpMyFAQ\Configuration\ConfigurationRepository::insert1100.0%
phpMyFAQ\Configuration\ConfigurationRepository::delete1100.0%
phpMyFAQ\Configuration\ConfigurationRepository::renameKey1100.0%
phpMyFAQ\Configuration\ConfigurationRepository::updateFaqDataContentById1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getServer1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getPort1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getUser1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getPassword1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getDatabase1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getPrefix1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getType1100.0%
phpMyFAQ\Configuration\DatabaseConfiguration::getSchema1100.0%
phpMyFAQ\Configuration\ElasticsearchConfiguration::__construct1100.0%
phpMyFAQ\Configuration\ElasticsearchConfiguration::getHosts1100.0%
phpMyFAQ\Configuration\ElasticsearchConfiguration::getIndex1100.0%
phpMyFAQ\Configuration\LayoutSettings::__construct1100.0%
phpMyFAQ\Configuration\LayoutSettings::getTemplateSet1100.0%
phpMyFAQ\Configuration\LayoutSettings::getCustomCss1100.0%
phpMyFAQ\Configuration\LdapConfiguration::getMainServer1100.0%
phpMyFAQ\Configuration\LdapConfiguration::getMainPort1100.0%
phpMyFAQ\Configuration\LdapConfiguration::getMainUser1100.0%
phpMyFAQ\Configuration\LdapConfiguration::getMainPassword1100.0%
phpMyFAQ\Configuration\LdapConfiguration::getMainBase1100.0%
phpMyFAQ\Configuration\LdapConfiguration::getServers1100.0%
phpMyFAQ\Configuration\LdapSettings::__construct1100.0%
phpMyFAQ\Configuration\LdapSettings::buildConfig1100.0%
phpMyFAQ\Configuration\LdapSettings::getLdapMapping1100.0%
phpMyFAQ\Configuration\LdapSettings::getLdapOptions1100.0%
phpMyFAQ\Configuration\LdapSettings::isActive1100.0%
phpMyFAQ\Configuration\MailSettings::__construct1100.0%
phpMyFAQ\Configuration\OpenSearchConfiguration::__construct1100.0%
phpMyFAQ\Configuration\OpenSearchConfiguration::getHosts1100.0%
phpMyFAQ\Configuration\OpenSearchConfiguration::getIndex1100.0%
phpMyFAQ\Configuration\SearchSettings::__construct1100.0%
phpMyFAQ\Configuration\SearchSettings::isElasticsearchActive1100.0%
phpMyFAQ\Configuration\SecuritySettings::__construct1100.0%
phpMyFAQ\Configuration\SecuritySettings::isSignInWithMicrosoftActive1100.0%
phpMyFAQ\Configuration\SecuritySettings::isSignInWithKeycloakActive1100.0%
phpMyFAQ\Configuration\Storage\ConfigurationStorageSettings::__construct1100.0%
phpMyFAQ\Configuration\Storage\ConfigurationStorageSettingsResolver::__construct1100.0%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::__construct1100.0%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::updateConfigValue1100.0%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::insert1100.0%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::delete1100.0%
phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::renameKey1100.0%
phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::__construct1100.0%
phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::clear1100.0%
phpMyFAQ\Configuration\Storage\HybridConfigurationStore::__construct1100.0%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::__construct1100.0%
phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getHashKey1100.0%
phpMyFAQ\Configuration\UrlSettings::__construct1100.0%