| phpMyFAQ\Setup\Migration\Versions\Migration420Alpha::up | 988.16 | 34.1% |
| phpMyFAQ\Setup\UpdateRunner::displayDryRunReport | 702 | 0.0% |
| phpMyFAQ\Controller\Frontend\FaqController::show | 601.65 | 19.5% |
| phpMyFAQ\Setup\InstallationRunner::stepValidateConnectivity | 600 | 0.0% |
| phpMyFAQ\Auth\AuthWebAuthn::register | 597.01 | 16.2% |
| phpMyFAQ\Auth\WebAuthn\PublicKeyConverter::fromCoseToPkcs | 197.69 | 49.0% |
| phpMyFAQ\Helper\RegistrationHelper::createUser | 182 | 0.0% |
| phpMyFAQ\Helper\CategoryHelper::getModerators | 156 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepCreateConfigFiles | 132 | 0.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::createRedisClient | 122.33 | 40.8% |
| phpMyFAQ\Setup\Upgrade::installPackage | 110 | 0.0% |
| phpMyFAQ\Controller\Frontend\UserController::resetPassword | 90 | 0.0% |
| phpMyFAQ\Setup\Upgrade::createTemporaryBackup | 90 | 0.0% |
| phpMyFAQ\Queue\Handler\ExportHandler::__invoke | 86.29 | 50.7% |
| phpMyFAQ\Language\Plurals::plural | 83 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::news | 80.23 | 11.1% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::sanitizeLayout | 72 | 0.0% |
| phpMyFAQ\Controller\Administration\Api\GroupController::saveCategoryRestrictions | 72 | 0.0% |
| phpMyFAQ\Setup\Installer::checkNoncriticalSettings | 72 | 0.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::getPageFlags | 61 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::getCategoryLanguagesTranslated | 56 | 0.0% |
| phpMyFAQ\Service\Gravatar::getImageUrl | 56 | 0.0% |
| phpMyFAQ\User::getEncryptedPassword | 56 | 0.0% |
| phpMyFAQ\Command\InstallCommand::execute | 50.75 | 25.9% |
| phpMyFAQ\Controller\Frontend\WebAuthnController::prepare | 47.85 | 5.9% |
| phpMyFAQ\Controller\Frontend\WebAuthnController::register | 43.81 | 9.1% |
| phpMyFAQ\Auth\OAuth2\Repository\UserRepository::getUserEntityByUserCredentials | 43.05 | 18.2% |
| phpMyFAQ\Helper\LanguageHelper::renderSelectLanguage | 42 | 0.0% |
| phpMyFAQ\Setup\Installer::checkFilesystemPermissions | 42 | 0.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::autoIncrementColumn | 42 | 0.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::ensureTableExists | 42 | 0.0% |
| phpMyFAQ\Setup\Update::migrateAdminLogHashes | 42 | 0.0% |
| phpMyFAQ\Setup\Upgrade::extractPackage | 42 | 0.0% |
| phpMyFAQ\Controller\Administration\Api\ExportController::buildReportResponse | 40.00 | 63.2% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::formatValue | 39.94 | 42.1% |
| phpMyFAQ\Controller\Frontend\Api\FaqController::create | 37.97 | 91.1% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::resolveLocalLogin | 37.14 | 40.0% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::transformRecursive | 34.82 | 7.1% |
| phpMyFAQ\Faq\Permission::createPermissionArray | 34.52 | 58.3% |
| phpMyFAQ\Setup\InstallationInputValidator::validateDatabaseInput | 33.90 | 82.0% |
| phpMyFAQ\Database\Mysqli::connect | 33.28 | 18.8% |
| phpMyFAQ\Controller\Frontend\Api\CommentController::create | 32.63 | 91.5% |
| phpMyFAQ\Auth\AuthWebAuthn::authenticate | 32.29 | 80.6% |
| phpMyFAQ\User\CurrentUser::login | 32.18 | 80.8% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::validateClaims | 31 | 97.5% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::save | 30.67 | 82.9% |
| phpMyFAQ\Helper\SearchHelper::getSearchResult | 30.58 | 63.9% |
| phpMyFAQ\Category\CategoryRepository::countCategories | 30 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepEstablishDbConnection | 30 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepCreateAdminUser | 30 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepInitializeSearchEngine | 30 | 0.0% |
| phpMyFAQ\Setup\Update::executeQueries | 30 | 0.0% |
| phpMyFAQ\Setup\Upgrade::cleanUp | 30 | 0.0% |
| phpMyFAQ\Controller\Administration\CategoryController::update | 28.23 | 80.6% |
| phpMyFAQ\Controller\Administration\Api\FaqController::update | 28.21 | 78.6% |
| phpMyFAQ\Mail::createHeaders | 28.12 | 85.4% |
| phpMyFAQ\Controller\Administration\Api\FaqController::create | 28.00 | 68.6% |
| phpMyFAQ\Setup\Upgrade::checkFilesystem | 25.82 | 63.6% |
| phpMyFAQ\Controller\Administration\Api\AttachmentController::upload | 25.68 | 63.8% |
| phpMyFAQ\Controller\Administration\Api\LdapController::healthcheck | 23.84 | 37.2% |
| phpMyFAQ\Faq::normalizeCategoryOrder | 23.62 | 37.5% |
| phpMyFAQ\Controller\Administration\Api\PageController::create | 23.49 | 90.2% |
| phpMyFAQ\Controller\Administration\Api\TranslationController::translate | 23.38 | 79.6% |
| phpMyFAQ\Controller\Administration\Api\InstanceController::add | 23.04 | 83.3% |
| phpMyFAQ\Controller\Frontend\Api\QuestionController::create | 23 | 98.5% |
| phpMyFAQ\User\UserAuthentication::authenticate | 22.50 | 50.0% |
| phpMyFAQ\Controller\Frontend\Api\UserController::updateData | 22 | 100.0% |
| phpMyFAQ\User\UserData::get | 21.97 | 71.4% |
| phpMyFAQ\Command\CreateHashesCommand::execute | 21.91 | 62.5% |
| phpMyFAQ\Setup\Migration\AbstractMigration::timestampType | 21.82 | 40.0% |
| phpMyFAQ\Controller\Administration\Api\UserController::editUser | 21.30 | 91.2% |
| phpMyFAQ\EventListener\ApiExceptionListener::createProblemDetailsResponse | 21 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UserController::addUser | 20.80 | 70.5% |
| phpMyFAQ\Controller\Administration\Api\ImageController::upload | 20.50 | 83.9% |
| phpMyFAQ\Auth\AuthLdap::checkCredentials | 20.36 | 84.4% |
| phpMyFAQ\User\UserSession::userTracking | 20.08 | 94.1% |
| phpMyFAQ\Administration\AdminMenuBuilder::renderLayoutModeOptions | 20 | 0.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::canAccessContent | 20 | 0.0% |
| phpMyFAQ\Administration\Session::getNumberOfOnlineUsers | 20 | 0.0% |
| phpMyFAQ\Configuration\Storage\HybridConfigurationStore::renameKey | 20 | 0.0% |
| phpMyFAQ\Database\PdoMysql::queryPrepared | 20 | 0.0% |
| phpMyFAQ\Database\PdoPgsql::queryPrepared | 20 | 0.0% |
| phpMyFAQ\Database\PdoSqlsrv::queryPrepared | 20 | 0.0% |
| phpMyFAQ\Database\Pgsql::connect | 20 | 0.0% |
| phpMyFAQ\Database\Sqlsrv::fetchAll | 20 | 0.0% |
| phpMyFAQ\Search::searchElasticsearch | 20 | 0.0% |
| phpMyFAQ\Setup\Installation\SchemaInstaller::dropTables | 20 | 0.0% |
| phpMyFAQ\Setup\InstallationInputValidator::validateLdapInput | 20 | 0.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::booleanType | 20 | 0.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::execute | 20 | 0.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::execute | 20 | 0.0% |
| phpMyFAQ\Setup\Update::optimizeTables | 20 | 0.0% |
| phpMyFAQ\Setup\Upgrade::verifyPackage | 20 | 0.0% |
| phpMyFAQ\User\UserAuthentication::authenticateLdap | 19.85 | 27.3% |
| phpMyFAQ\Setup\Installation\SchemaInstaller::createAndUseSchema | 19.56 | 27.8% |
| phpMyFAQ\Push\WebPushService::sendToSubscriptions | 19.39 | 43.8% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::callback | 19.16 | 80.4% |
| phpMyFAQ\Setup\Update::collectDryRunQueries | 19.12 | 28.6% |
| phpMyFAQ\Helper\StatisticsHelper::deleteTrackingFiles | 18.74 | 60.0% |
| phpMyFAQ\Export\Pdf\Wrapper::convertExternalImagesToBase64 | 18.44 | 82.9% |
| phpMyFAQ\ConfigurationMethodsTrait::initializeTranslationProvider | 18.35 | 30.0% |
| phpMyFAQ\Controller\Api\CategoryController::create | 18.25 | 75.6% |
| phpMyFAQ\Export\Pdf\Wrapper::resolveImage | 18.18 | 84.0% |
| phpMyFAQ\Controller\Administration\BackupController::restore | 18.06 | 94.4% |
| phpMyFAQ\Faq\QueryHelper::getQuery | 18.05 | 80.0% |
| phpMyFAQ\Controller\Frontend\Api\RegistrationController::create | 18 | 97.3% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::build | 18 | 97.6% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::completeAuthorization | 17.58 | 40.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration323::up | 17.23 | 21.2% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::buildCombined | 17.06 | 75.0% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::installPackage | 17.01 | 6.7% |
| phpMyFAQ\Controller\Api\OAuth2Controller::authorize | 17 | 98.2% |
| phpMyFAQ\Ldap::getLdapData | 17 | 98.0% |
| phpMyFAQ\Mail::send | 17 | 96.2% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha::up | 16.94 | 71.4% |
| phpMyFAQ\Controller\Administration\CategoryController::create | 16.76 | 75.9% |
| phpMyFAQ\Faq::normalizeFaqOrderBy | 16.67 | 33.3% |
| phpMyFAQ\Controller\Administration\Api\ExportController::exportReport | 16.13 | 92.1% |
| phpMyFAQ\Controller\Frontend\Api\UserController::requestUserRemoval | 16.06 | 93.8% |
| phpMyFAQ\Administration\AdminMenuBuilder::evaluatePermission | 16.00 | 50.0% |
| phpMyFAQ\Command\SeedTestDataCommand::purge | 16 | 95.7% |
| phpMyFAQ\Controller\Administration\Api\UserController::overwritePassword | 15.94 | 83.9% |
| phpMyFAQ\EventListener\WebExceptionListener::handleNotFound | 15.61 | 44.0% |
| phpMyFAQ\Attachment\File::save | 15.48 | 66.7% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::reset | 15.48 | 87.1% |
| phpMyFAQ\Controller\Administration\Api\StopWordController::save | 15.40 | 44.4% |
| phpMyFAQ\Kernel::resolveContainer | 15.40 | 44.4% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::findKey | 15.38 | 57.1% |
| phpMyFAQ\Controller\Administration\Api\PageController::update | 15.11 | 92.1% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::formatDryRunReport | 15 | 98.1% |
| phpMyFAQ\Auth\OAuth2\ResourceServer::authenticate | 14.86 | 58.3% |
| phpMyFAQ\Controller\Administration\Api\GroupController::updateMembers | 14.51 | 86.3% |
| phpMyFAQ\Controller\Administration\AuthenticationController::authenticate | 14.49 | 64.4% |
| phpMyFAQ\Setup\Update::createConfigBackup | 14.29 | 88.6% |
| phpMyFAQ\Search\SearchResultSet::reviewResultSet | 14.18 | 90.3% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta::up | 14.11 | 47.5% |
| phpMyFAQ\Controller\Frontend\Api\WebAuthnController::prepare | 14.08 | 92.5% |
| phpMyFAQ\Administration\Backup::parseBackupFile | 14.04 | 93.9% |
| phpMyFAQ\Controller\Administration\Api\UserController::updateUserRights | 14.03 | 94.9% |
| phpMyFAQ\Template\ThemeManager::uploadTheme | 14.02 | 81.8% |
| phpMyFAQ\Translation\ContentTranslationService::translateCustomPage | 14 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\GroupController::updateGroup | 13.81 | 76.7% |
| phpMyFAQ\Controller\Administration\Api\GroupController::updatePermissions | 13.78 | 83.3% |
| phpMyFAQ\Controller\Administration\InstanceController::update | 13.54 | 78.0% |
| phpMyFAQ\Faq\FaqRepository::buildConditionWhereClause | 13.33 | 87.5% |
| phpMyFAQ\User::createUser | 13.21 | 89.2% |
| phpMyFAQ\Api\Pagination\PaginationMetadata::generateLinks | 13 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ContactController::create | 13 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\VotingController::create | 13 | 100.0% |
| phpMyFAQ\Faq\Import::validateCSV | 13 | 95.5% |
| phpMyFAQ\Instance\Database\PdoPgsql::createTables | 13 | 95.2% |
| phpMyFAQ\Queue\Handler\SendMailHandler::__invoke | 13 | 100.0% |
| phpMyFAQ\Search\SearchService::processSearch | 13 | 98.5% |
| phpMyFAQ\Setup\InstallationInputValidator::validateUserCredentials | 13 | 100.0% |
| phpMyFAQ\Helper\FaqHelper::convertOldInternalLinks | 12.76 | 51.0% |
| phpMyFAQ\Attachment\Filesystem\File\VanillaFile::copyTo | 12.41 | 33.3% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::convertToString | 12.41 | 33.3% |
| phpMyFAQ\Auth\AuthKeycloak::assignUserToGroups | 12.39 | 86.1% |
| phpMyFAQ\Routing\AttributeRouteLoader::load | 12.37 | 86.4% |
| phpMyFAQ\Plugin\PluginManager::loadPlugins | 12.22 | 78.4% |
| phpMyFAQ\Controller\Administration\Api\MediaBrowserController::index | 12.16 | 89.7% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::versions | 12.10 | 60.0% |
| phpMyFAQ\Database\DatabaseHelper::buildInsertQueries | 12.07 | 79.3% |
| phpMyFAQ\System::createHashes | 12.07 | 92.1% |
| phpMyFAQ\Administration\AdminMenuBuilder::renderTranslationProviderOptions | 12 | 0.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::renderMailProviderOptions | 12 | 0.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::renderCacheAdapterOptions | 12 | 0.0% |
| phpMyFAQ\Administration\Faq::countQuery | 12 | 0.0% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::getSymbol | 12 | 0.0% |
| phpMyFAQ\Controller\Administration\Api\ApiKeyController::update | 12 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\GroupController::listCategoryRestrictions | 12 | 0.0% |
| phpMyFAQ\Database\Mysqli::queryPrepared | 12 | 0.0% |
| phpMyFAQ\Database\Pgsql::queryPrepared | 12 | 0.0% |
| phpMyFAQ\Database\Sqlsrv::queryPrepared | 12 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::inlineLocalImages | 12 | 97.2% |
| phpMyFAQ\Helper\AttachmentHelper::mapMimeTypeToIcon | 12 | 100.0% |
| phpMyFAQ\Instance\Client::extractClientHostnameFromUrl | 12 | 100.0% |
| phpMyFAQ\Instance\Database\Pgsql::createTables | 12 | 100.0% |
| phpMyFAQ\Link::toHtmlAnchor | 12 | 100.0% |
| phpMyFAQ\Queue\Handler\IndexFaqHandler::__invoke | 12 | 100.0% |
| phpMyFAQ\Search::getMostPopularSearches | 12 | 100.0% |
| phpMyFAQ\Setup\InstallationInputValidator::validateElasticsearchInput | 12 | 0.0% |
| phpMyFAQ\Setup\InstallationInputValidator::validateOpenSearchInput | 12 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepCreateDatabaseTables | 12 | 0.0% |
| phpMyFAQ\Setup\Installer::cleanFailedInstallationFiles | 12 | 0.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::varcharType | 12 | 0.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::execute | 12 | 0.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha2::up | 12 | 0.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Beta2::up | 12 | 0.0% |
| phpMyFAQ\Setup\Update::runPostMigrationTasks | 12 | 0.0% |
| phpMyFAQ\Setup\Update::insertFormInputs | 12 | 0.0% |
| phpMyFAQ\Setup\UpdateRunner::runDryRun | 12 | 0.0% |
| phpMyFAQ\Setup\UpdateRunner::taskUpdateCheck | 12 | 0.0% |
| phpMyFAQ\Setup\UpdateRunner::taskDownloadPackage | 12 | 0.0% |
| phpMyFAQ\Setup\UpdateRunner::taskInstallPackage | 12 | 0.0% |
| phpMyFAQ\Setup\UpdateRunner::taskUpdateDatabase | 12 | 0.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::import | 11.78 | 81.4% |
| phpMyFAQ\Setup\HtaccessUpdater::addRewriteBase | 11.77 | 35.3% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::issueToken | 11.76 | 61.1% |
| phpMyFAQ\Ldap::connect | 11.56 | 75.0% |
| phpMyFAQ\Attachment\File::get | 11.53 | 22.2% |
| phpMyFAQ\Bootstrap\ConfigDirectoryResolver::resolveDatabaseFile | 11.48 | 84.2% |
| phpMyFAQ\Controller\Administration\SystemInformationController::index | 11.48 | 75.5% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::executeMigration | 11.42 | 69.0% |
| phpMyFAQ\Scheduler\TaskScheduler::optimizeSearchIndex | 11.38 | 62.5% |
| phpMyFAQ\Search\Search\Elasticsearch::mapHits | 11.32 | 86.2% |
| phpMyFAQ\Controller\Api\RegistrationController::create | 11.15 | 89.2% |
| phpMyFAQ\Database\PdoSqlite::numRows | 11.10 | 77.8% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::logSecurityConfigChanges | 11.04 | 93.2% |
| phpMyFAQ\Category\CategoryRepository::findCategoriesPaginated | 11.02 | 94.6% |
| phpMyFAQ\Auth\EntraId\JwksProvider::loadJwks | 11 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::findOrderedCategories | 11 | 96.4% |
| phpMyFAQ\Chat::getConversationList | 11 | 98.4% |
| phpMyFAQ\Command\SeedTestDataCommand::seedCategories | 11 | 97.3% |
| phpMyFAQ\Ldap::getGroupMemberships | 11 | 97.1% |
| phpMyFAQ\Mail::createBody | 11 | 97.7% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::build | 11 | 100.0% |
| phpMyFAQ\Translation\ContentTranslationService::translateFaq | 11 | 100.0% |
| phpMyFAQ\Translation\ContentTranslationService::translateNews | 11 | 100.0% |
| phpMyFAQ\User::createPassword | 11 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::getStemmingLanguage | 10.75 | 25.0% |
| phpMyFAQ\Database\Sqlite3::queryPrepared | 10.66 | 57.9% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::extractPackage | 10.32 | 6.7% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::createTemporaryBackup | 10.32 | 6.7% |
| phpMyFAQ\Setup\HtaccessUpdater::updateRewriteBase | 10.29 | 85.7% |
| phpMyFAQ\Controller\Frontend\UserController::ucp | 10.27 | 86.2% |
| phpMyFAQ\User\UserData::save | 10.26 | 59.5% |
| phpMyFAQ\Setup\Migration\AbstractMigration::indexExists | 10.23 | 40.6% |
| phpMyFAQ\Auth\AuthKeycloak::extractRoleNames | 10.20 | 87.5% |
| phpMyFAQ\Bootstrapper::run | 10.20 | 87.5% |
| phpMyFAQ\User::deleteUser | 10.20 | 87.5% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::requestReset | 10.18 | 87.9% |
| phpMyFAQ\Export\Pdf\Wrapper::getImageMimeType | 10.16 | 88.2% |
| phpMyFAQ\Setup\Installation\SchemaInstaller::createTables | 10.14 | 88.9% |
| phpMyFAQ\Link\Util\LinkQueryParser::parse | 10.12 | 89.5% |
| phpMyFAQ\Controller\Administration\Api\PageController::activate | 10.10 | 90.0% |
| phpMyFAQ\Auth\AuthDatabase::checkCredentials | 10.06 | 91.7% |
| phpMyFAQ\Instance\Client::createClientTablesWithDatabase | 10.06 | 91.4% |
| phpMyFAQ\Command\SeedTestDataCommand::seedFaqs | 10.04 | 92.9% |
| phpMyFAQ\Tags::getAllTags | 10.03 | 93.5% |
| phpMyFAQ\Controller\Administration\DashboardController::index | 10.02 | 68.4% |
| phpMyFAQ\Controller\Frontend\AuthenticationController::authenticate | 10.02 | 94.3% |
| phpMyFAQ\Administration\Backup::getBackupTableNames | 10 | 100.0% |
| phpMyFAQ\Controller\Administration\PasswordChangeController::update | 10 | 97.6% |
| phpMyFAQ\Controller\Frontend\AzureAuthenticationController::callback | 10 | 100.0% |
| phpMyFAQ\Faq::getFaqsDataByIds | 10 | 98.2% |
| phpMyFAQ\Search::searchDatabase | 10 | 95.7% |
| phpMyFAQ\User\CurrentUserSessionLookupTrait::getFromSession | 9.95 | 77.3% |
| phpMyFAQ\Controller\Administration\Api\ElasticsearchController::statistics | 9.93 | 8.3% |
| phpMyFAQ\Instance\Setup::checkDirs | 9.80 | 78.6% |
| phpMyFAQ\Controller\Administration\Api\UserController::deleteUser | 9.79 | 61.5% |
| phpMyFAQ\Controller\Administration\Api\UserController::activate | 9.73 | 70.0% |
| phpMyFAQ\Helper\StatisticsHelper::getTrackingFilesStatistics | 9.51 | 81.5% |
| phpMyFAQ\Storage\StorageFactory::resolveFilesystemRoot | 9.49 | 81.8% |
| phpMyFAQ\Api\Filtering\FilterRequest::parseBoolValue | 9.36 | 63.6% |
| phpMyFAQ\Controller\Frontend\Api\ChatSseController::stream | 9.35 | 83.8% |
| phpMyFAQ\Plugin\PluginDiscovery::readManifest | 9.29 | 84.6% |
| phpMyFAQ\Instance\Search\Elasticsearch::bulkIndexCustomPages | 9.20 | 86.5% |
| phpMyFAQ\Setup\UpdateToken::read | 9.16 | 87.5% |
| phpMyFAQ\Administration\DashboardLayout::get | 9.12 | 88.5% |
| phpMyFAQ\Storage\StorageFactory::createS3Storage | 9.12 | 74.1% |
| phpMyFAQ\Administration\Faq::getAllFaqsByCategory | 9.09 | 89.5% |
| phpMyFAQ\Faq::getAllFaqs | 9.07 | 90.5% |
| phpMyFAQ\Controller\Frontend\CustomPageController::show | 9.05 | 91.7% |
| phpMyFAQ\Category\Image::upload | 9.03 | 92.9% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::deleteDir | 9.02 | 93.8% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::doTranslate | 9.02 | 93.3% |
| phpMyFAQ\Administration\Backup::isCompleteStatement | 9.01 | 94.7% |
| phpMyFAQ\Administration\Category::loadCategories | 9 | 97.8% |
| phpMyFAQ\Auth\EntraId\OAuth::setToken | 9 | 100.0% |
| phpMyFAQ\Bootstrapper::switchToTenantSchema | 9 | 100.0% |
| phpMyFAQ\Category\Order::setCategoryTree | 9 | 96.2% |
| phpMyFAQ\Category\Relation::getNumberOfFaqsPerCategory | 9 | 100.0% |
| phpMyFAQ\Container\ContainerCacheManager::getContainer | 9 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ApiKeyController::create | 9 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\CommentController::delete | 9 | 95.7% |
| phpMyFAQ\Controller\Frontend\AbstractFrontController::getHeader | 9 | 100.0% |
| phpMyFAQ\Controller\Frontend\AuthenticationController::logout | 9 | 100.0% |
| phpMyFAQ\Controller\Frontend\AuthenticationController::check | 9 | 100.0% |
| phpMyFAQ\Controller\Frontend\AzureAuthenticationController::buildAuthContext | 9 | 100.0% |
| phpMyFAQ\EventListener\ApiExceptionListener::onKernelException | 9 | 100.0% |
| phpMyFAQ\EventListener\WebExceptionListener::onKernelException | 9 | 100.0% |
| phpMyFAQ\Mail\Smtp::send | 9 | 100.0% |
| phpMyFAQ\Routing\AttributeRouteLoader::matchesContext | 9 | 100.0% |
| phpMyFAQ\Search\Database\Mysqli::search | 9 | 100.0% |
| phpMyFAQ\Search\Database\PdoMysql::search | 9 | 100.0% |
| phpMyFAQ\Session\Token::verifyToken | 9 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\SqlOperation::getDescription | 9 | 100.0% |
| phpMyFAQ\User::getAllUsers | 9 | 100.0% |
| phpMyFAQ\Setup\AbstractSetup::checkPreUpgrade | 8.83 | 76.5% |
| phpMyFAQ\Queue\Worker::decodeMessage | 8.81 | 66.7% |
| phpMyFAQ\Faq\FaqDisplayService::getAttachmentList | 8.74 | 33.3% |
| phpMyFAQ\Setup\Migration\AbstractMigration::createIndex | 8.74 | 33.3% |
| phpMyFAQ\Controller\Api\BackupController::download | 8.41 | 81.4% |
| phpMyFAQ\Attachment\File::delete | 8.32 | 70.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::tableExists | 8.30 | 60.0% |
| phpMyFAQ\Configuration\Storage\HybridConfigurationStore::fetchAll | 8.16 | 86.4% |
| phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::read | 8.15 | 86.7% |
| phpMyFAQ\Bootstrap\ConfigDirectoryResolver::resolve | 8.12 | 50.0% |
| phpMyFAQ\Command\SeedTestDataCommand::execute | 8.12 | 87.8% |
| phpMyFAQ\Bootstrap\SearchClientFactory::waitForHealthy | 8.10 | 88.2% |
| phpMyFAQ\Controller\Api\SearchController::search | 8.09 | 88.7% |
| phpMyFAQ\Controller\Frontend\Api\UserController::exportUserData | 8.09 | 88.9% |
| phpMyFAQ\User\UserData::load | 8.05 | 72.2% |
| phpMyFAQ\Category\Presentation\AdminCategoryTreePresenter::transform | 8.03 | 36.8% |
| phpMyFAQ\Search\SearchService::handleTagSearch | 8.03 | 92.7% |
| phpMyFAQ\Helper\RegistrationHelper::isDomainAllowed | 8.02 | 93.8% |
| phpMyFAQ\Helper\SvgSanitizer::isSafe | 8.02 | 93.3% |
| phpMyFAQ\Administration\AdminLog::verifyChainIntegrity | 8.01 | 94.3% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::warmFromRows | 8.01 | 94.4% |
| phpMyFAQ\Helper\StatisticsHelper::getLastTrackingDate | 8.01 | 94.1% |
| phpMyFAQ\Permission\GroupCategoryPermissionRepository::getCategoryRestrictions | 8.01 | 94.4% |
| phpMyFAQ\Translation::ensureLanguageLoaded | 8.01 | 94.1% |
| phpMyFAQ\Administration\Report::getReportingData | 8 | 100.0% |
| phpMyFAQ\Administration\Revision::get | 8 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::parseFilterValue | 8 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::create | 8 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::prepareForLogin | 8 | 96.9% |
| phpMyFAQ\Auth\Keycloak\KeycloakProviderConfigFactory::create | 8 | 96.4% |
| phpMyFAQ\Auth\OAuth2\Repository\ClientRepository::validateClient | 8 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcDiscoveryDocument::fromArray | 8 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::findAllCategories | 8 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::findAllCategoryIds | 8 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::findMissingCategories | 8 | 100.0% |
| phpMyFAQ\Category\Order::getOrderedFlatList | 8 | 100.0% |
| phpMyFAQ\Category\Permission::getAll | 8 | 100.0% |
| phpMyFAQ\Category\Relation::getCategoryWithFaqs | 8 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\InstanceController::delete | 8 | 100.0% |
| phpMyFAQ\Controller\Administration\AuthenticationController::check | 8 | 96.6% |
| phpMyFAQ\Controller\Administration\CategoryController::edit | 8 | 100.0% |
| phpMyFAQ\Controller\Administration\FaqController::edit | 8 | 98.9% |
| phpMyFAQ\Controller\Frontend\Api\WebAuthnController::login | 8 | 96.6% |
| phpMyFAQ\Controller\Frontend\CategoryController::getSubCategoryContent | 8 | 100.0% |
| phpMyFAQ\EventListener\ApiRateLimiterListener::onKernelRequest | 8 | 95.5% |
| phpMyFAQ\Export\Pdf::generateFile | 8 | 95.2% |
| phpMyFAQ\Filesystem\Filesystem::deleteDirectory | 8 | 100.0% |
| phpMyFAQ\Form\FormsHelper::filterAndSortFormData | 8 | 95.8% |
| phpMyFAQ\Glossary\GlossaryHelper::extractMatchParts | 8 | 100.0% |
| phpMyFAQ\Helper\LanguageHelper::renderLanguageOptions | 8 | 100.0% |
| phpMyFAQ\Instance\Database\Mysqli::createTables | 8 | 100.0% |
| phpMyFAQ\Instance\Database\PdoMysql::createTables | 8 | 100.0% |
| phpMyFAQ\Kernel::registerEventListeners | 8 | 100.0% |
| phpMyFAQ\Language::getLanguage | 8 | 100.0% |
| phpMyFAQ\Link\Strategy\SearchStrategy::build | 8 | 100.0% |
| phpMyFAQ\Mail\Provider\MailgunProvider::send | 8 | 100.0% |
| phpMyFAQ\News\NewsRepository::getLatestPaginated | 8 | 100.0% |
| phpMyFAQ\Notification::sendQuestionSuccessMail | 8 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::getAllRightsData | 8 | 100.0% |
| phpMyFAQ\Search::searchCustomPages | 8 | 100.0% |
| phpMyFAQ\Service\Gravatar::getImage | 8 | 100.0% |
| phpMyFAQ\Tags::create | 8 | 100.0% |
| phpMyFAQ\Translation\ContentTranslationService::translateCategory | 8 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::get | 8 | 100.0% |
| phpMyFAQ\Mail\Provider\SesProvider::getSesClient | 7.91 | 37.5% |
| phpMyFAQ\Search\SearchFactory::resolveDatabaseType | 7.90 | 62.5% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::isValidAudience | 7.77 | 75.0% |
| phpMyFAQ\Permission\MediumPermission::hasPermissionForCategory | 7.60 | 76.9% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::saveLayout | 7.46 | 53.8% |
| phpMyFAQ\Controller\Frontend\AbstractFrontController::handleStaticPageRedirect | 7.46 | 53.8% |
| phpMyFAQ\Instance\Search\Elasticsearch::getSearchAnalyzer | 7.46 | 40.0% |
| phpMyFAQ\Mail::addEmailTo | 7.39 | 80.0% |
| phpMyFAQ\Administration\Category::getLevelOf | 7.35 | 54.5% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::resetLayout | 7.35 | 54.5% |
| phpMyFAQ\Administration\Backup::createContentFolderBackup | 7.34 | 81.0% |
| phpMyFAQ\Controller\Administration\Api\GroupController::deleteGroup | 7.33 | 66.7% |
| phpMyFAQ\Instance\Client::quoteIdentifier | 7.33 | 66.7% |
| phpMyFAQ\Language\LanguageDetector::initUserAgentLanguage | 7.33 | 66.7% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::formatValue | 7.33 | 66.7% |
| phpMyFAQ\Setup\Migration\Operations\UserCreateOperation::execute | 7.32 | 81.2% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::getFreshCache | 7.29 | 81.8% |
| phpMyFAQ\Instance\Search\Elasticsearch::bulkIndex | 7.27 | 82.4% |
| phpMyFAQ\Permission\GroupCategoryPermissionRepository::setCategoryRestrictions | 7.25 | 82.8% |
| phpMyFAQ\Controller\Api\FaqController::list | 7.23 | 83.3% |
| phpMyFAQ\Controller\Frontend\Api\WebAuthnController::register | 7.19 | 84.2% |
| phpMyFAQ\Controller\Frontend\SetupController::update | 7.14 | 85.7% |
| phpMyFAQ\User\CurrentUser::updateSessionId | 7.14 | 85.7% |
| phpMyFAQ\Storage\FilesystemStorage::putStream | 7.12 | 86.7% |
| phpMyFAQ\Search\Search\OpenSearch::mapHits | 7.10 | 87.5% |
| phpMyFAQ\Controller\Administration\Api\PageController::delete | 7.06 | 89.5% |
| phpMyFAQ\Controller\Administration\Api\PageController::checkSlug | 7.04 | 90.9% |
| phpMyFAQ\Controller\Administration\Api\QuestionController::delete | 7.04 | 90.9% |
| phpMyFAQ\Controller\Api\FaqController::create | 7.04 | 90.9% |
| phpMyFAQ\Helper\StatisticsHelper::getAllTrackingDates | 7.04 | 90.9% |
| phpMyFAQ\Export\Pdf::generate | 7.03 | 91.4% |
| phpMyFAQ\Administration\Backup::getLastBackupInfo | 7.02 | 92.6% |
| phpMyFAQ\Category\Order::getParentId | 7.02 | 92.9% |
| phpMyFAQ\Controller\Administration\GroupController::create | 7.01 | 93.5% |
| phpMyFAQ\Instance\Client::getDatabaseCredentials | 7.01 | 94.1% |
| phpMyFAQ\Permission\GroupCategoryPermissionRepository::getAllCategoryRestrictions | 7.01 | 94.4% |
| phpMyFAQ\Administration\Faq::updateRecordFlag | 7 | 100.0% |
| phpMyFAQ\Administration\RecentUsers::getList | 7 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::fromRequest | 7 | 100.0% |
| phpMyFAQ\Api\Response\ApiResponse::buildMetadata | 7 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::mkVirtualHash | 7 | 100.0% |
| phpMyFAQ\Bootstrap\ConfigDirectoryResolver::computeAttachmentsPath | 7 | 100.0% |
| phpMyFAQ\Bootstrap\PhpConfigurator::configureSession | 7 | 95.7% |
| phpMyFAQ\Captcha\BuiltinCaptcha::drawLines | 7 | 96.9% |
| phpMyFAQ\Captcha\BuiltinCaptcha::validateCaptchaCode | 7 | 100.0% |
| phpMyFAQ\Category\Startpage::getCategories | 7 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::activate | 7 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::sticky | 7 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\PushController::subscribe | 7 | 100.0% |
| phpMyFAQ\Controller\Frontend\AttachmentController::index | 7 | 100.0% |
| phpMyFAQ\Controller\Frontend\FaqController::add | 7 | 98.6% |
| phpMyFAQ\Controller\Frontend\QuestionsController::ask | 7 | 97.8% |
| phpMyFAQ\Controller\Frontend\SearchController::index | 7 | 95.3% |
| phpMyFAQ\Controller\Frontend\SitemapController::index | 7 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::insertTranslation | 7 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::renderFooter | 7 | 100.0% |
| phpMyFAQ\Faq::getFaqsDataByCategoryId | 7 | 98.9% |
| phpMyFAQ\Faq\FaqRepository::fetchRowBySolutionId | 7 | 100.0% |
| phpMyFAQ\Faq\Permission::add | 7 | 100.0% |
| phpMyFAQ\Faq\Permission::get | 7 | 100.0% |
| phpMyFAQ\Instance\Database\PdoSqlsrv::createTables | 7 | 100.0% |
| phpMyFAQ\Instance\Database\Sqlsrv::createTables | 7 | 100.0% |
| phpMyFAQ\Ldap::getLdapDn | 7 | 100.0% |
| phpMyFAQ\Link::getQuery | 7 | 100.0% |
| phpMyFAQ\Mail::enqueueForDelivery | 7 | 100.0% |
| phpMyFAQ\News\NewsRepository::getLatest | 7 | 100.0% |
| phpMyFAQ\Notification::sendFaqCommentNotification | 7 | 98.1% |
| phpMyFAQ\Search\SearchResultSet::getScore | 7 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::execute | 7 | 96.9% |
| phpMyFAQ\Session\RedisSessionHandler::buildSocketTarget | 7 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::getAppliedMigrations | 7 | 100.0% |
| phpMyFAQ\Setup\Upgrade::isPathSafe | 7 | 100.0% |
| phpMyFAQ\StopWords::checkBannedWord | 7 | 100.0% |
| phpMyFAQ\Translation::get | 7 | 100.0% |
| phpMyFAQ\Translation::has | 7 | 100.0% |
| phpMyFAQ\Translation\TranslationProviderFactory::create | 7 | 100.0% |
| phpMyFAQ\User\PasswordResetTokenService::verify | 7 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::update | 7 | 96.3% |
| phpMyFAQ\Controller\Frontend\SetupController::hasAdministratorSession | 6.99 | 42.9% |
| phpMyFAQ\Routing\RouteCacheManager::getRoutes | 6.84 | 71.4% |
| phpMyFAQ\Administration\AdminMenuBuilder::setUser | 6.73 | 72.7% |
| phpMyFAQ\Captcha\BuiltinCaptcha::drawText | 6.62 | 74.2% |
| phpMyFAQ\Database\PdoSqlite::query | 6.60 | 60.0% |
| phpMyFAQ\Database\PdoSqlsrv::query | 6.60 | 60.0% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::mapLanguageCode | 6.60 | 60.0% |
| phpMyFAQ\Translation\Provider\GoogleTranslationProvider::mapLanguageCode | 6.60 | 60.0% |
| phpMyFAQ\Auth\AuthKeycloak::getGroupMapping | 6.56 | 75.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::audienceMatches | 6.56 | 75.0% |
| phpMyFAQ\Permission\MediumPermission::hasPermission | 6.56 | 75.0% |
| phpMyFAQ\Configuration\Storage\HybridConfigurationStore::insert | 6.50 | 46.2% |
| phpMyFAQ\Configuration\Storage\HybridConfigurationStore::delete | 6.50 | 46.2% |
| phpMyFAQ\Search\SearchService::handleFulltextSearch | 6.46 | 76.7% |
| phpMyFAQ\Setup\Migration\Versions\Migration405::up | 6.44 | 61.4% |
| phpMyFAQ\Controller\Administration\Api\GlossaryController::delete | 6.43 | 46.7% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha3::up | 6.40 | 61.7% |
| phpMyFAQ\Setup\Migration\AbstractMigration::createUniqueIndex | 6.28 | 28.6% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::backup | 6.25 | 81.0% |
| phpMyFAQ\Category\Relation::getAggregatedFaqNumbers | 6.24 | 81.2% |
| phpMyFAQ\Controller\Frontend\PdfController::index | 6.18 | 82.8% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchValues | 6.12 | 85.0% |
| phpMyFAQ\Controller\Frontend\WebAuthnController::login | 6.12 | 85.2% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::validateSignature | 6.10 | 85.7% |
| phpMyFAQ\Instance\Client::createClientDatabase | 6.10 | 85.7% |
| phpMyFAQ\Setup\Installer::checkBasicStuff | 6.09 | 86.7% |
| phpMyFAQ\Sitemap::getFaqsFromLetter | 6.08 | 86.8% |
| phpMyFAQ\Translation\Provider\GoogleTranslationProvider::doTranslateBatch | 6.08 | 87.0% |
| phpMyFAQ\Setup\Upgrade::secureExtractZip | 6.07 | 87.5% |
| phpMyFAQ\Filesystem\Filesystem::recursiveCopy | 6.06 | 88.2% |
| phpMyFAQ\Search::search | 6.05 | 88.9% |
| phpMyFAQ\Search\SearchDatabase::getConditions | 6.05 | 88.9% |
| phpMyFAQ\Setup\UpdateRunner::formatValue | 6.05 | 88.9% |
| phpMyFAQ\Bookmark::isFaqBookmark | 6.04 | 90.0% |
| phpMyFAQ\Instance\Search\OpenSearch::bulkIndexCustomPages | 6.03 | 90.6% |
| phpMyFAQ\Permission\MediumPermissionRepository::getAutoJoinGroups | 6.03 | 90.9% |
| phpMyFAQ\Attachment\File::isStorageOk | 6.02 | 92.3% |
| phpMyFAQ\Category\CategoryRepository::countByNameLangParent | 6.02 | 92.3% |
| phpMyFAQ\Category\CategoryRepository::hasLinkToFaq | 6.02 | 91.7% |
| phpMyFAQ\Instance\Client::insertRows | 6.02 | 92.0% |
| phpMyFAQ\Administration\TranslationStatistics::getStatistics | 6.01 | 93.1% |
| phpMyFAQ\Auth\ApiKeyAuthenticator::authenticate | 6.01 | 94.7% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::expandTo | 6.01 | 93.3% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::uploadTheme | 6.01 | 93.3% |
| phpMyFAQ\Controller\Administration\AuthenticationController::logout | 6.01 | 94.4% |
| phpMyFAQ\Helper\StatisticsHelper::getFirstTrackingDate | 6.01 | 93.3% |
| phpMyFAQ\Link::toString | 6.01 | 93.8% |
| phpMyFAQ\Queue\Transport\DatabaseTransport::reserve | 6.01 | 94.3% |
| phpMyFAQ\Translation::registerPluginTranslations | 6.01 | 93.3% |
| phpMyFAQ\Administration\Faq::getInactiveFaqsData | 6 | 100.0% |
| phpMyFAQ\Administration\Faq::getOrphanedFaqs | 6 | 100.0% |
| phpMyFAQ\Administration\Faq::sanitizePermissionIds | 6 | 0.0% |
| phpMyFAQ\Api\Sorting\SortRequest::fromRequest | 6 | 100.0% |
| phpMyFAQ\Attachment\AttachmentFactory::fetchByRecordIdPaginated | 6 | 100.0% |
| phpMyFAQ\Attachment\AttachmentService::checkGroupPermission | 6 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::create | 6 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::assignUserToGroups | 6 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AccessTokenRepository::persistNewAccessToken | 6 | 100.0% |
| phpMyFAQ\Bootstrapper::configureLdap | 6.00 | 50.0% |
| phpMyFAQ\Cache\CacheFactory::createRedisAdapter | 6 | 0.0% |
| phpMyFAQ\Cache\CacheSettingsResolver::resolve | 6 | 100.0% |
| phpMyFAQ\Captcha\GoogleRecaptcha::checkCaptchaCode | 6 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::findCategoriesFromFaq | 6 | 100.0% |
| phpMyFAQ\Category\Navigation\BreadcrumbsHtmlRenderer::render | 6 | 100.0% |
| phpMyFAQ\Category\Permission::add | 6 | 100.0% |
| phpMyFAQ\Category\Permission::get | 6 | 100.0% |
| phpMyFAQ\Category\Presentation\AdminCategoryTreePresenter::getSymbol | 6 | 0.0% |
| phpMyFAQ\Configuration\MultisiteConfigurationLocator::locateConfigurationDirectory | 6 | 100.0% |
| phpMyFAQ\Configuration\MultisiteConfigurationLocator::extractTenantFromSubdomain | 6 | 100.0% |
| phpMyFAQ\Controller\AbstractController::userHasGroupPermission | 6 | 100.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::getSecondLevelEntries | 6 | 100.0% |
| phpMyFAQ\Controller\Api\FaqController::getById | 6 | 100.0% |
| phpMyFAQ\Controller\Api\OpenQuestionController::list | 6 | 97.4% |
| phpMyFAQ\Controller\Api\PdfController::getById | 6 | 95.2% |
| phpMyFAQ\Controller\ContainerControllerResolver::getController | 6 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::check | 6 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::updateDatabase | 6 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UserController::removeTwofactorConfig | 6 | 100.0% |
| phpMyFAQ\Controller\Frontend\FaqController::contentRedirect | 6 | 100.0% |
| phpMyFAQ\Core\Error::errorHandler | 6 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::getAllPaginated | 6 | 95.7% |
| phpMyFAQ\CustomPage\CustomPageRepository::getAllLanguagesPaginated | 6 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::insert | 6 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::update | 6 | 100.0% |
| phpMyFAQ\Database\Mysqli::error | 6 | 0.0% |
| phpMyFAQ\Database\Mysqli::affectedRows | 6 | 0.0% |
| phpMyFAQ\Database\Pgsql::affectedRows | 6 | 0.0% |
| phpMyFAQ\Environment::setupDebugMode | 6 | 100.0% |
| phpMyFAQ\EventListener\RouterListener::onKernelRequest | 6 | 100.0% |
| phpMyFAQ\Faq::getFaq | 6 | 100.0% |
| phpMyFAQ\Faq\Statistics::getTopVotedData | 6 | 100.0% |
| phpMyFAQ\Helper\CategoryHelper::buildCategoryList | 6 | 100.0% |
| phpMyFAQ\Helper\QuestionHelper::getOpenQuestions | 6 | 100.0% |
| phpMyFAQ\Instance\Client::copyBaseDataToSchema | 6 | 96.6% |
| phpMyFAQ\Instance\Database::createTenantDatabase | 6 | 100.0% |
| phpMyFAQ\Kernel::boot | 6 | 0.0% |
| phpMyFAQ\Mail::sendPreparedEnvelope | 6 | 100.0% |
| phpMyFAQ\Mail\Builtin::send | 6 | 100.0% |
| phpMyFAQ\Mail\Provider\SendGridProvider::send | 6 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::checkRightData | 6 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getUserRightsCount | 6 | 0.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::getGroupRights | 6 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::getGroupMembers | 6 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::getUserGroups | 6 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::getAllGroups | 6 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::getUserGroupRights | 6 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::registerPluginStylesheets | 6 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::registerPluginScripts | 6 | 100.0% |
| phpMyFAQ\Question\QuestionRepository::getAll | 6 | 100.0% |
| phpMyFAQ\Routing\AttributeRouteLoader::getClassFromFile | 6 | 100.0% |
| phpMyFAQ\Routing\RouteCollectionBuilder::getControllerDirectories | 6 | 100.0% |
| phpMyFAQ\Search::resolveSearchDatabaseType | 6 | 100.0% |
| phpMyFAQ\Search\Database\PdoPgsql::search | 6 | 100.0% |
| phpMyFAQ\Search\Database\Pgsql::search | 6 | 100.0% |
| phpMyFAQ\Search\Database\Pgsql::getMatchingColumns | 6 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::getMatchClause | 6 | 100.0% |
| phpMyFAQ\Search\SearchService::getFormattedSearchResults | 6 | 0.0% |
| phpMyFAQ\Seo\SeoRepository::get | 6 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::seedConfig | 6 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepSeedConfiguration | 6 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepGrantPermissions | 6 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepInsertFormInputs | 6 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepAdjustHtaccess | 6 | 0.0% |
| phpMyFAQ\Setup\Installer::checkInitialRewriteBasePath | 6 | 0.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::addSqlForDbType | 6 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\DialectFactory::createForType | 6 | 100.0% |
| phpMyFAQ\Setup\Update::checkInitialRewriteBasePath | 6 | 0.0% |
| phpMyFAQ\Setup\Update::applyUpdates | 6.00 | 50.0% |
| phpMyFAQ\Setup\UpdateRunner::taskExtractPackage | 6 | 0.0% |
| phpMyFAQ\Setup\UpdateRunner::taskCreateTemporaryBackup | 6 | 0.0% |
| phpMyFAQ\Sitemap::getAllFirstLetters | 6 | 100.0% |
| phpMyFAQ\StopWords::clean | 6 | 100.0% |
| phpMyFAQ\Storage\S3Storage::buildKey | 6 | 100.0% |
| phpMyFAQ\Translation\Provider\GoogleTranslationProvider::doTranslate | 6 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::__construct | 6 | 100.0% |
| phpMyFAQ\User::mailUser | 6 | 0.0% |
| phpMyFAQ\User::getSuperAdminIds | 6 | 100.0% |
| phpMyFAQ\User\Tracking::log | 6 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getServiceContainer | 6 | 0.0% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::resolveLogoutIdToken | 5.93 | 66.7% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::extractFirstInt | 5.93 | 66.7% |
| phpMyFAQ\Controller\Administration\Api\AttachmentController::delete | 5.76 | 68.8% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::fetchJwks | 5.73 | 69.2% |
| phpMyFAQ\Controller\Administration\Api\AttachmentController::refresh | 5.68 | 70.0% |
| phpMyFAQ\Database\PdoPgsql::query | 5.68 | 70.0% |
| phpMyFAQ\Controller\Administration\Api\PushController::generateVapidKeys | 5.58 | 71.4% |
| phpMyFAQ\Pagination::renderPageNumbers | 5.57 | 53.8% |
| phpMyFAQ\Setup\Upgrade::downloadPackage | 5.46 | 73.7% |
| phpMyFAQ\Controller\Administration\Api\CategoryController::delete | 5.44 | 74.1% |
| phpMyFAQ\Helper\StatisticsHelper::clearAllVisits | 5.40 | 55.6% |
| phpMyFAQ\Category\Tree\TreePathResolver::getValidParentId | 5.39 | 75.0% |
| phpMyFAQ\Setup\UpdateToken::create | 5.39 | 75.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::renameKey | 5.31 | 76.9% |
| phpMyFAQ\Administration\Report::convertEncoding | 5.27 | 77.8% |
| phpMyFAQ\Database\Sqlite3::numRows | 5.27 | 77.8% |
| phpMyFAQ\Setup\HtaccessUpdater::validateHtaccessStructure | 5.27 | 77.8% |
| phpMyFAQ\Administration\FileDownloader::setHttpHeaders | 5.23 | 78.9% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::authorize | 5.21 | 57.7% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getInstalledRedisVersion | 5.20 | 80.0% |
| phpMyFAQ\Database\PdoMysql::query | 5.20 | 80.0% |
| phpMyFAQ\User\CurrentUser::sortAuthContainer | 5.20 | 37.5% |
| phpMyFAQ\Helper\SvgSanitizer::sanitize | 5.15 | 81.8% |
| phpMyFAQ\Tags::buildPermissionCheck | 5.15 | 81.8% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::delete | 5.12 | 83.3% |
| phpMyFAQ\Category::getLineCategory | 5.12 | 83.3% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::getLineCategory | 5.12 | 83.3% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::getMigrations | 5.12 | 83.3% |
| phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::warm | 5.09 | 84.6% |
| phpMyFAQ\Api\Sorting\SortRequest::validateOrder | 5.07 | 85.7% |
| phpMyFAQ\Controller\AbstractController::hasValidToken | 5.07 | 85.7% |
| phpMyFAQ\Instance\Search\OpenSearch::bulkIndex | 5.07 | 86.2% |
| phpMyFAQ\Kernel::handle | 5.07 | 85.7% |
| phpMyFAQ\ConfigurationMethodsTrait::getTranslationProvider | 5.07 | 85.7% |
| phpMyFAQ\User\UserData::fetchAll | 5.06 | 86.7% |
| phpMyFAQ\Controller\Frontend\Api\BookmarkController::delete | 5.05 | 87.5% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::doTranslateBatch | 5.05 | 87.5% |
| phpMyFAQ\Controller\Administration\Api\TagController::search | 5.03 | 88.9% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::synchronizeKeycloakSubject | 5.03 | 88.9% |
| phpMyFAQ\Permission\BasicPermission::addRight | 5.03 | 90.0% |
| phpMyFAQ\Search\Database\PdoPgsql::getMatchingOrder | 5.03 | 90.0% |
| phpMyFAQ\Search\Rating\RatingRepository::getNumberOfVotings | 5.03 | 90.0% |
| phpMyFAQ\Storage\FilesystemStorage::put | 5.03 | 90.0% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::doTranslate | 5.03 | 90.0% |
| phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::copyTo | 5.02 | 90.9% |
| phpMyFAQ\Category\Tree\TreePathResolver::computeLevel | 5.02 | 90.9% |
| phpMyFAQ\Command\SeedTestDataCommand::seedGlossary | 5.02 | 90.9% |
| phpMyFAQ\Search\Database\Pgsql::getMatchingOrder | 5.02 | 90.9% |
| phpMyFAQ\User::changePassword | 5.02 | 90.9% |
| phpMyFAQ\Auth\EntraId\OAuth::getOAuthToken | 5.01 | 92.6% |
| phpMyFAQ\Category::__construct | 5.01 | 92.9% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::fetchAll | 5.01 | 92.3% |
| phpMyFAQ\Controller\Administration\Api\QuestionController::toggle | 5.01 | 93.8% |
| phpMyFAQ\Controller\Administration\Api\SessionController::export | 5.01 | 91.7% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::updateCheck | 5.01 | 92.6% |
| phpMyFAQ\Controller\Frontend\Api\BookmarkController::create | 5.01 | 93.8% |
| phpMyFAQ\Controller\Frontend\NewsController::index | 5.01 | 92.2% |
| phpMyFAQ\Faq\FaqDisplayService::processAnswer | 5.01 | 93.8% |
| phpMyFAQ\Instance\Search\Elasticsearch::putMapping | 5.01 | 91.7% |
| phpMyFAQ\Permission\MediumPermission::getAllGroupsOptions | 5.01 | 91.7% |
| phpMyFAQ\System::getAvailableTemplates | 5.01 | 91.7% |
| phpMyFAQ\Template\ThemeManager::normalizeArchivePath | 5.01 | 92.9% |
| phpMyFAQ\Administration\AdminLogRepository::getAll | 5 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::add | 5 | 100.0% |
| phpMyFAQ\Administration\ReportRepository::fetchAllReportData | 5 | 100.0% |
| phpMyFAQ\Administration\Session::getVisitsForDays | 5.00 | 94.4% |
| phpMyFAQ\Attachment\AttachmentService::getUserRights | 5 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::getChunk | 5 | 100.0% |
| phpMyFAQ\Auth\AuthChain::authenticate | 5 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::checkCredentials | 5 | 100.0% |
| phpMyFAQ\Auth\AuthSso::checkCredentials | 5 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AccessTokenRepository::getNewToken | 5 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AuthCodeRepository::persistNewAuthCode | 5 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\ClientRepository::getClientEntity | 5 | 95.8% |
| phpMyFAQ\Auth\Oidc\OidcClient::buildLogoutUrl | 5 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcClient::decodeJsonResponse | 5 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcDiscoveryService::discover | 5 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::splitToken | 5 | 100.0% |
| phpMyFAQ\Bookmark\BookmarkFormatter::format | 5 | 97.1% |
| phpMyFAQ\Category::expandTo | 5 | 100.0% |
| phpMyFAQ\Category::collapseAll | 5 | 100.0% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::collapseAll | 5 | 100.0% |
| phpMyFAQ\Category\Order::getCategoryTree | 5 | 100.0% |
| phpMyFAQ\Category\Order::getAllCategories | 5 | 100.0% |
| phpMyFAQ\Command\McpServerCommand::showServerInfo | 5 | 96.3% |
| phpMyFAQ\Command\SeedTestDataCommand::seedNews | 5 | 95.8% |
| phpMyFAQ\Configuration\LdapSettings::buildServers | 5 | 100.0% |
| phpMyFAQ\Controller\AbstractController::isSecured | 5 | 100.0% |
| phpMyFAQ\Controller\AbstractController::userHasUserPermission | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\AdminLogController::verify | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ApiKeyController::list | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ApiKeyController::delete | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\PageController::indexCustomPage | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\PageController::updateCustomPageIndex | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\PageController::deleteCustomPageFromIndex | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::downloadPackage | 5.00 | 94.7% |
| phpMyFAQ\Controller\Administration\Api\UserController::list | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UserController::csvExport | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\AuthenticationController::login | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\OpenQuestionsController::index | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\UserController::list | 5 | 100.0% |
| phpMyFAQ\Controller\Api\GlossaryController::list | 5 | 100.0% |
| phpMyFAQ\Controller\Api\OAuth2Controller::token | 5 | 100.0% |
| phpMyFAQ\Controller\Frontend\AbstractFrontController::getTopNavigation | 5 | 100.0% |
| phpMyFAQ\Controller\Frontend\AbstractFrontController::getUserDropdown | 5 | 100.0% |
| phpMyFAQ\Controller\Frontend\AbstractFrontController::getFooterNavigation | 5 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ChatController::send | 5.00 | 94.4% |
| phpMyFAQ\Controller\Frontend\Api\PushController::unsubscribe | 5 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\WebAuthnController::prepareLogin | 5 | 100.0% |
| phpMyFAQ\Controller\Frontend\UserController::requestRemoval | 5 | 100.0% |
| phpMyFAQ\CustomPage::mapRowToEntity | 5 | 100.0% |
| phpMyFAQ\Database\Pgsql::numberPlaceholders | 5 | 100.0% |
| phpMyFAQ\EventListener\LanguageListener::detectLanguage | 5 | 100.0% |
| phpMyFAQ\EventListener\RouterListener::normalizePath | 5 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::checkBase64Image | 5 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::validateImageData | 5 | 100.0% |
| phpMyFAQ\Faq::getAllAvailableFaqsByCategoryId | 5 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::getRenderedCategoryPath | 5 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::isActive | 5 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::update | 5 | 100.0% |
| phpMyFAQ\Faq\Statistics::buildStatisticsQuery | 5 | 100.0% |
| phpMyFAQ\Forms::updateInputFlags | 5 | 100.0% |
| phpMyFAQ\Glossary::insertItemsIntoContent | 5 | 100.0% |
| phpMyFAQ\Helper\CategoryHelper::buildCategoryNodes | 5 | 100.0% |
| phpMyFAQ\Helper\LanguageHelper::getAvailableLanguages | 5 | 100.0% |
| phpMyFAQ\Helper\SearchHelper::createAutoCompleteResult | 5 | 100.0% |
| phpMyFAQ\Helper\SearchHelper::renderAdminSuggestionResult | 5 | 100.0% |
| phpMyFAQ\Helper\SearchHelper::renderScore | 5 | 100.0% |
| phpMyFAQ\Helper\SearchHelper::renderRelatedFaqs | 5 | 100.0% |
| phpMyFAQ\Helper\SvgSanitizer::detectIssues | 5 | 100.0% |
| phpMyFAQ\Instance::getConfig | 5 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::updateCustomPage | 5 | 100.0% |
| phpMyFAQ\Instance\Setup::createDatabaseFile | 5 | 100.0% |
| phpMyFAQ\Kernel::loadRoutes | 5 | 100.0% |
| phpMyFAQ\Language::isLanguageAvailable | 5 | 100.0% |
| phpMyFAQ\Link::toUri | 5 | 100.0% |
| phpMyFAQ\Link\Strategy\FaqStrategy::build | 5 | 100.0% |
| phpMyFAQ\Mail::createProvider | 5 | 100.0% |
| phpMyFAQ\News\NewsRepository::getHeaders | 5 | 100.0% |
| phpMyFAQ\News\NewsService::getCommentMessage | 5 | 100.0% |
| phpMyFAQ\Notification::sendNewFaqAdded | 5 | 97.2% |
| phpMyFAQ\Permission\BasicPermission::hasPermission | 5 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::getUserRights | 5 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::changeGroup | 5 | 100.0% |
| phpMyFAQ\Push\WebPushService::isEnabled | 5 | 100.0% |
| phpMyFAQ\Queue\Worker::runOnce | 5 | 100.0% |
| phpMyFAQ\Queue\Worker::run | 5 | 100.0% |
| phpMyFAQ\Routing\AttributeRouteLoader::findControllerFiles | 5 | 100.0% |
| phpMyFAQ\Scheduler\TaskScheduler::run | 5 | 100.0% |
| phpMyFAQ\Search\Database\PdoPgsql::getMatchingColumnsAsResult | 5 | 100.0% |
| phpMyFAQ\Search\Database\Pgsql::getMatchingColumnsAsResult | 5 | 100.0% |
| phpMyFAQ\Seo::getMetaRobots | 5 | 100.0% |
| phpMyFAQ\StopWords::getByLang | 5 | 100.0% |
| phpMyFAQ\StopWords::getBannedWords | 5 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::normalizePathForUrl | 5 | 100.0% |
| phpMyFAQ\System::isUpdateExemptRequest | 5 | 100.0% |
| phpMyFAQ\Tags::getPopularTags | 5 | 100.0% |
| phpMyFAQ\Translation::getConfigurationItems | 5 | 100.0% |
| phpMyFAQ\Twig\TwigCacheResolver::resolve | 5 | 100.0% |
| phpMyFAQ\User::searchUsers | 5 | 100.0% |
| phpMyFAQ\User::getUserById | 5 | 100.0% |
| phpMyFAQ\User\TrackingDataRedactor::redactQueryString | 5 | 100.0% |
| phpMyFAQ\User\TwoFactor::validateToken | 5 | 100.0% |
| phpMyFAQ\User\UserData::set | 5 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\AdminLogController::export | 4.99 | 60.5% |
| phpMyFAQ\Setup\Migration\AbstractMigration::addColumn | 4.84 | 62.5% |
| phpMyFAQ\Auth\AuthLdap::isValidLogin | 4.68 | 42.9% |
| phpMyFAQ\Command\UpdateCommand::execute | 4.68 | 42.9% |
| phpMyFAQ\Auth\ApiKeyAuthenticator::parseScopes | 4.59 | 66.7% |
| phpMyFAQ\Category\Relation::aggregateRecursively | 4.59 | 66.7% |
| phpMyFAQ\Controller\SitemapController::generateGzippedSitemap | 4.59 | 66.7% |
| phpMyFAQ\Database\Mysqli::query | 4.59 | 66.7% |
| phpMyFAQ\Database\PdoSqlite::queryPrepared | 4.59 | 66.7% |
| phpMyFAQ\Database\Sqlite3::query | 4.59 | 66.7% |
| phpMyFAQ\Controller\Administration\Api\ExportController::exportFile | 4.50 | 68.4% |
| phpMyFAQ\Session\RedisSessionHandler::validateConnection | 4.50 | 68.4% |
| phpMyFAQ\Command\SeedTestDataCommand::loadFixture | 4.43 | 70.0% |
| phpMyFAQ\Controller\AbstractController::verifySessionCsrfToken | 4.43 | 70.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::isAuthenticatedAdministrator | 4.43 | 70.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationController::testRedisConnection | 4.41 | 70.6% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::logout | 4.37 | 71.4% |
| phpMyFAQ\Plugin\PluginManager::areDependenciesMet | 4.37 | 71.4% |
| phpMyFAQ\Session\RedisSessionHandler::configure | 4.37 | 71.4% |
| phpMyFAQ\Api\MetaService::buildThemeColors | 4.31 | 47.4% |
| phpMyFAQ\Auth\AuthEntraId::create | 4.31 | 16.7% |
| phpMyFAQ\Category\Relation::getCategories | 4.30 | 73.3% |
| phpMyFAQ\Database\Sqlsrv::affectedRows | 4.25 | 75.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::boolean | 4.25 | 75.0% |
| phpMyFAQ\System::getSupportedSafeDatabases | 4.25 | 75.0% |
| phpMyFAQ\Controller\Api\QuestionController::create | 4.23 | 75.8% |
| phpMyFAQ\Controller\Administration\Api\GlossaryController::update | 4.21 | 76.5% |
| phpMyFAQ\Controller\Frontend\WebAuthnController::prepareLogin | 4.20 | 76.9% |
| phpMyFAQ\Api\ProblemDetails::toArray | 4.16 | 78.6% |
| phpMyFAQ\Controller\AbstractController::initializeFromContainer | 4.16 | 78.6% |
| phpMyFAQ\Auth::selectAuth | 4.13 | 80.0% |
| phpMyFAQ\Category\Tree\CategoryValidator::isDirectChild | 4.13 | 80.0% |
| phpMyFAQ\Permission\MediumPermission::getAllGroups | 4.13 | 80.0% |
| phpMyFAQ\Permission\MediumPermission::addToGroup | 4.13 | 80.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Alpha::up | 4.13 | 80.0% |
| phpMyFAQ\Attachment\File::rawOut | 4.12 | 50.0% |
| phpMyFAQ\User\CurrentUser::deleteFromSession | 4.11 | 81.2% |
| phpMyFAQ\User\Tracking::handleSession | 4.11 | 81.0% |
| phpMyFAQ\Controller\Administration\Api\StopWordController::delete | 4.10 | 81.8% |
| phpMyFAQ\Database\Sqlsrv::query | 4.10 | 81.8% |
| phpMyFAQ\Controller\Api\TagController::list | 4.08 | 82.8% |
| phpMyFAQ\Attachment\AttachmentFactory::init | 4.07 | 83.3% |
| phpMyFAQ\Auth\ApiKeyAuthenticator::isNotExpired | 4.07 | 83.3% |
| phpMyFAQ\Export\Pdf\Wrapper::fetchExternalImage | 4.07 | 83.3% |
| phpMyFAQ\Setup\EnvironmentConfigurator::adjustRewriteBaseHtaccess | 4.07 | 83.3% |
| phpMyFAQ\Strings::init | 4.07 | 83.3% |
| phpMyFAQ\Tenant\TenantContextResolver::readIntEnv | 4.07 | 83.3% |
| phpMyFAQ\Controller\Frontend\SetupController::index | 4.06 | 84.6% |
| phpMyFAQ\Instance\Client::createClientTablesWithSchema | 4.06 | 84.6% |
| phpMyFAQ\Administration\AdminMenuBuilder::addMenuEntry | 4.05 | 85.7% |
| phpMyFAQ\Auth\AuthDatabase::delete | 4.05 | 85.7% |
| phpMyFAQ\Bootstrap\SearchClientFactory::configureElasticsearch | 4.05 | 85.7% |
| phpMyFAQ\Controller\Administration\Api\TagController::update | 4.05 | 85.7% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::versions | 4.05 | 20.0% |
| phpMyFAQ\Controller\Administration\CategoryController::hierarchy | 4.05 | 85.0% |
| phpMyFAQ\Seo\SitemapXmlService::generateXml | 4.05 | 20.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::executeMigrations | 4.05 | 85.7% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta::rebuildTableWithoutColumns | 4.05 | 85.7% |
| phpMyFAQ\Strings\AbstractString::isUTF8 | 4.05 | 20.0% |
| phpMyFAQ\User\CurrentUser::getSessionInfo | 4.05 | 85.7% |
| phpMyFAQ\Auth\AuthDatabase::update | 4.04 | 86.7% |
| phpMyFAQ\Api\Filtering\FilterRequest::parseDateValue | 4.03 | 87.5% |
| phpMyFAQ\Auth\AuthDatabase::create | 4.03 | 87.5% |
| phpMyFAQ\Category\Tree\TreeBuilder::buildAdminCategoryTree | 4.03 | 87.5% |
| phpMyFAQ\Controller\Administration\Api\NewsController::update | 4.03 | 87.5% |
| phpMyFAQ\Setup\Migration\MigrationTracker::getLastAppliedVersion | 4.03 | 87.5% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::decodeSegment | 4.02 | 90.0% |
| phpMyFAQ\Bootstrap\ConfigDirectoryResolver::loadConfigConstants | 4.02 | 88.9% |
| phpMyFAQ\Category\Tree\TreeVisualizer::buildTree | 4.02 | 88.9% |
| phpMyFAQ\Database\Sqlite3::fetchAll | 4.02 | 88.9% |
| phpMyFAQ\Faq\FaqDisplayService::processQuestion | 4.02 | 88.9% |
| phpMyFAQ\Instance\Client::moveClientFolder | 4.02 | 90.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::getGroupName | 4.02 | 88.9% |
| phpMyFAQ\Queue\Transport\DatabaseTransport::decodeHeaders | 4.02 | 88.9% |
| phpMyFAQ\Twig\Extensions\AssetVersionTwigExtension::versionedPath | 4.02 | 88.9% |
| phpMyFAQ\User::__construct | 4.02 | 90.0% |
| phpMyFAQ\Administration\SessionRepository::countOnlineUsersFromFaqUser | 4.01 | 90.9% |
| phpMyFAQ\Category\Tree\TreeBuilder::buildLinearTree | 4.01 | 91.7% |
| phpMyFAQ\Category\Tree\TreePathResolver::getNodes | 4.01 | 90.9% |
| phpMyFAQ\Comment\CommentsRepository::countByReferenceIdAndType | 4.01 | 92.3% |
| phpMyFAQ\Configuration\Storage\HybridConfigurationStore::updateConfigValue | 4.01 | 92.3% |
| phpMyFAQ\Controller\Administration\Api\SearchController::deleteTerm | 4.01 | 90.9% |
| phpMyFAQ\Controller\Frontend\AbstractFrontController::initializeFromContainer | 4.01 | 90.9% |
| phpMyFAQ\Controller\Frontend\Api\ChatController::markAsRead | 4.01 | 92.3% |
| phpMyFAQ\Database\Pgsql::query | 4.01 | 90.9% |
| phpMyFAQ\Permission\MediumPermissionRepository::getGroupData | 4.01 | 91.7% |
| phpMyFAQ\Setup\InstallationInputValidator::validate | 4.01 | 91.4% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::buildIndexStatements | 4.01 | 92.9% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::assertCanStoreAttachment | 4.01 | 92.9% |
| phpMyFAQ\Translation\Provider\AzureTranslationProvider::doTranslateBatch | 4.01 | 92.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::findByFilename | 4 | 100.0% |
| phpMyFAQ\Administration\Changelog::getByFaqId | 4 | 100.0% |
| phpMyFAQ\Administration\Faq::setStickyFaqOrder | 4 | 100.0% |
| phpMyFAQ\Administration\RemoteApiClient::getVerificationIssues | 4 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::countOnlineUsersFromSessions | 4 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::getTimeBySessionId | 4 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::getSessionsByDateRange | 4 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::getSessionTimestamps | 4 | 100.0% |
| phpMyFAQ\Api\MetaService::toBool | 4 | 100.0% |
| phpMyFAQ\Api\OAuthDiscoveryService::getMetaDiscovery | 4 | 100.0% |
| phpMyFAQ\Api\OAuthDiscoveryService::isEnabled | 4 | 100.0% |
| phpMyFAQ\Api\Pagination\PaginationRequest::fromRequest | 4 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getMeta | 4 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::linkedRecords | 4 | 100.0% |
| phpMyFAQ\Attachment\AttachmentFactory::create | 4 | 100.0% |
| phpMyFAQ\Attachment\AttachmentFactory::fetchByRecordId | 4 | 100.0% |
| phpMyFAQ\Attachment\AttachmentService::canDownloadAttachment | 4 | 100.0% |
| phpMyFAQ\Attachment\Filename::compose | 4 | 100.0% |
| phpMyFAQ\Auth\AuthEntraId::createOAuthChallenge | 4 | 100.0% |
| phpMyFAQ\Auth\AuthHttp::checkCredentials | 4 | 100.0% |
| phpMyFAQ\Auth\EntraId\EntraIdSession::setCookie | 4 | 100.0% |
| phpMyFAQ\Auth\Keycloak\KeycloakProviderConfigFactory::toBool | 4 | 100.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::isEnabled | 4 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\ScopeRepository::getScopeEntityByIdentifier | 4.00 | 94.1% |
| phpMyFAQ\Auth\OAuth2\ResourceServer::isEnabled | 4 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcClient::exchangeAuthorizationCode | 4 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::createPemFromJwk | 4.00 | 94.4% |
| phpMyFAQ\Auth\Oidc\OidcPkceGenerator::generateVerifier | 4 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcPkceGenerator::generateChallenge | 4 | 100.0% |
| phpMyFAQ\Captcha\Helper\BuiltinCaptchaAbstractHelper::renderCaptcha | 4 | 96.7% |
| phpMyFAQ\Category\Image::delete | 4 | 100.0% |
| phpMyFAQ\Category\Permission::delete | 4 | 100.0% |
| phpMyFAQ\Category\Permission::isRestricted | 4 | 100.0% |
| phpMyFAQ\Category\Relation::getCategoryFaqsMatrix | 4 | 100.0% |
| phpMyFAQ\Chat::getBatchUserInfo | 4.00 | 93.8% |
| phpMyFAQ\Comment\CommentsRepository::fetchPaginated | 4 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::fetchAllWithCategories | 4 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::__construct | 4 | 95.2% |
| phpMyFAQ\Configuration\Storage\ConfigurationStorageSettingsResolver::resolve | 4 | 100.0% |
| phpMyFAQ\Controller\AbstractController::userHasAnyPermission | 4 | 100.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::getGravatarImage | 4 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\CategoryController::permissions | 4 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::getStaleCache | 4 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::saveOrderOfStickyFaqs | 4.00 | 94.4% |
| phpMyFAQ\Controller\Administration\Api\NewsController::activate | 4.00 | 94.7% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::updateDatabase | 4 | 100.0% |
| phpMyFAQ\Controller\Administration\BackupController::export | 4 | 100.0% |
| phpMyFAQ\Controller\Administration\FormsController::translate | 4 | 100.0% |
| phpMyFAQ\Controller\Api\AttachmentController::list | 4.00 | 94.7% |
| phpMyFAQ\Controller\Api\FaqController::resolveRequestLanguage | 4 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\AutoCompleteController::search | 4 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ChatController::getMessages | 4 | 100.0% |
| phpMyFAQ\Controller\Frontend\AuthenticationController::login | 4 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::buildParentNavigationLink | 4 | 100.0% |
| phpMyFAQ\Controller\Frontend\ContactController::index | 4 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::getAll | 4 | 100.0% |
| phpMyFAQ\Database::factory | 4 | 100.0% |
| phpMyFAQ\Database\Mysqli::fetchAll | 4 | 100.0% |
| phpMyFAQ\Database\Pgsql::fetchAll | 4 | 100.0% |
| phpMyFAQ\Database\Pgsql::getTableStatus | 4 | 100.0% |
| phpMyFAQ\EventListener\ControllerContainerListener::onKernelController | 4 | 100.0% |
| phpMyFAQ\Export::create | 4 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::__construct | 4 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::isWithinRoot | 4 | 100.0% |
| phpMyFAQ\Faq::create | 4 | 100.0% |
| phpMyFAQ\Faq::getFaqBySolutionId | 4 | 100.0% |
| phpMyFAQ\Faq::getKeywords | 4 | 100.0% |
| phpMyFAQ\Faq::get | 4 | 100.0% |
| phpMyFAQ\Faq::getStickyFaqsData | 4 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::getNextSolutionId | 4 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchQuestion | 4 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::getFaqResult | 4 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::insert | 4 | 100.0% |
| phpMyFAQ\Faq\Import::import | 4 | 97.7% |
| phpMyFAQ\Faq\QueryHelper::queryPermission | 4 | 100.0% |
| phpMyFAQ\Faq\RecordVisibility::isWithinPublicationWindow | 4 | 100.0% |
| phpMyFAQ\Faq\Statistics::getTopTen | 4 | 100.0% |
| phpMyFAQ\Faq\Statistics::getLatestData | 4 | 100.0% |
| phpMyFAQ\Faq\Statistics::getTrendingData | 4 | 100.0% |
| phpMyFAQ\Faq\Statistics::getTopTenData | 4 | 100.0% |
| phpMyFAQ\Filesystem\Filesystem::copy | 4 | 100.0% |
| phpMyFAQ\Filter::filterInput | 4 | 100.0% |
| phpMyFAQ\Filter::filterVar | 4 | 100.0% |
| phpMyFAQ\Filter::filterEmail | 4 | 100.0% |
| phpMyFAQ\Form\FormsServiceProvider::register | 4 | 100.0% |
| phpMyFAQ\Helper\StatisticsHelper::renderDaySelector | 4 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::putMapping | 4 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::updateCustomPage | 4 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::selectLanguage | 4 | 100.0% |
| phpMyFAQ\Ldap::bind | 4 | 100.0% |
| phpMyFAQ\Link::hasScheme | 4 | 100.0% |
| phpMyFAQ\Link\Strategy\ShowStrategy::build | 4 | 100.0% |
| phpMyFAQ\Mail::validateEmail | 4 | 100.0% |
| phpMyFAQ\Mail::wrapLines | 4 | 100.0% |
| phpMyFAQ\Mail::getMUA | 4 | 100.0% |
| phpMyFAQ\Mail::sendViaSmtpAgent | 4 | 100.0% |
| phpMyFAQ\Mail\Provider\SesProvider::send | 4.00 | 93.5% |
| phpMyFAQ\News::getAll | 4 | 100.0% |
| phpMyFAQ\News::getLatestData | 4 | 100.0% |
| phpMyFAQ\News::get | 4 | 100.0% |
| phpMyFAQ\News\NewsRepository::getById | 4 | 100.0% |
| phpMyFAQ\Notification::sendWebPushToUsers | 4 | 100.0% |
| phpMyFAQ\Pagination::getCurrentPageFromUrl | 4 | 100.0% |
| phpMyFAQ\Pagination::renderUrl | 4 | 100.0% |
| phpMyFAQ\Permission::create | 4 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::getRightData | 4.00 | 93.3% |
| phpMyFAQ\Permission\GroupCategoryPermissionRepository::checkUserGroupRightForCategory | 4 | 100.0% |
| phpMyFAQ\Plugin\PluginDiscovery::getClassMap | 4 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::registerPlugin | 4.00 | 93.3% |
| phpMyFAQ\Push\PushSubscriptionRepository::save | 4 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::getByUserIds | 4 | 100.0% |
| phpMyFAQ\Push\WebPushService::sendToUsers | 4 | 100.0% |
| phpMyFAQ\Queue\MessageBusFactory::create | 4 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::clear | 4 | 100.0% |
| phpMyFAQ\Scheduler\TaskScheduler::cleanupSessions | 4 | 100.0% |
| phpMyFAQ\Search::searchOpenSearch | 4 | 100.0% |
| phpMyFAQ\Search\SearchService::calculateRelatedTags | 4 | 100.0% |
| phpMyFAQ\Search\SearchService::shouldRedirectToSolutionId | 4 | 100.0% |
| phpMyFAQ\Seo\SitemapXmlService::collectUrls | 4 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::formatResultsAsJson | 4 | 100.0% |
| phpMyFAQ\Service\McpServer\McpSdkRuntime::faqSearch | 4 | 100.0% |
| phpMyFAQ\Setup\EnvironmentConfigurator::getServerPath | 4 | 100.0% |
| phpMyFAQ\Setup\InstallationRunner::buildOpenSearchClientOptions | 4 | 100.0% |
| phpMyFAQ\Setup\UpdateRunner::displayMigrationResults | 4 | 100.0% |
| phpMyFAQ\Setup\UpdateToken::isValid | 4 | 100.0% |
| phpMyFAQ\Storage\StorageFactory::create | 4 | 100.0% |
| phpMyFAQ\System::getSystemUri | 4 | 100.0% |
| phpMyFAQ\Tags::getAllTagsById | 4 | 100.0% |
| phpMyFAQ\Tags::getFaqsByIntersectionTags | 4 | 100.0% |
| phpMyFAQ\Tags::getFaqsByTagId | 4 | 100.0% |
| phpMyFAQ\Template\ThemeManager::assertAllowedTwigTemplate | 4 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::assertCountWithinLimit | 4 | 100.0% |
| phpMyFAQ\Translation::setMultiByteLanguage | 4 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::resolveTemplateSetName | 4 | 100.0% |
| phpMyFAQ\User::getUserByCookie | 4 | 95.0% |
| phpMyFAQ\User::activateUser | 4 | 100.0% |
| phpMyFAQ\User\UserData::delete | 4 | 100.0% |
| phpMyFAQ\User\CurrentUserSessionLookupTrait::getCurrentUserGroupId | 4 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::parseDateTimeValue | 3.71 | 57.1% |
| phpMyFAQ\Instance\Search\Elasticsearch::isAvailable | 3.69 | 25.0% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::translateBatch | 3.69 | 25.0% |
| phpMyFAQ\Administration\FileDownloader::send | 3.58 | 60.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::delete | 3.58 | 60.0% |
| phpMyFAQ\Faq::delete | 3.58 | 60.0% |
| phpMyFAQ\System::checkDatabase | 3.58 | 60.0% |
| phpMyFAQ\Search::autoComplete | 3.51 | 61.5% |
| phpMyFAQ\Auth\AuthWebAuthn::idList | 3.33 | 66.7% |
| phpMyFAQ\Auth\Keycloak\KeycloakProviderConfigFactory::buildDiscoveryUrl | 3.33 | 66.7% |
| phpMyFAQ\Category\Tree\CategoryValidator::isValidCategory | 3.33 | 66.7% |
| phpMyFAQ\Database\PdoSqlsrv::connect | 3.33 | 66.7% |
| phpMyFAQ\Database\Sqlite3::error | 3.33 | 66.7% |
| phpMyFAQ\Database\Sqlsrv::clientVersion | 3.33 | 66.7% |
| phpMyFAQ\Glossary::setTooltip | 3.33 | 66.7% |
| phpMyFAQ\Language\Plurals::getPlural | 3.33 | 66.7% |
| phpMyFAQ\Search\SearchFactory::instantiate | 3.33 | 66.7% |
| phpMyFAQ\Setup\Migration\AbstractMigration::integerType | 3.33 | 66.7% |
| phpMyFAQ\Setup\Migration\AbstractMigration::textType | 3.33 | 66.7% |
| phpMyFAQ\Administration\RemoteApiClient::getVersions | 3.21 | 71.4% |
| phpMyFAQ\Controller\Administration\Api\StatisticsController::clearVisits | 3.21 | 71.4% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::healthCheck | 3.19 | 72.2% |
| phpMyFAQ\Database\Mysqli::close | 3.19 | 33.3% |
| phpMyFAQ\Instance\Search\Elasticsearch::getMapping | 3.19 | 33.3% |
| phpMyFAQ\Twig\TwigWrapper::loadTemplate | 3.19 | 33.3% |
| phpMyFAQ\User\UserAuthentication::authenticateSso | 3.19 | 33.3% |
| phpMyFAQ\Controller\Administration\Api\StatisticsController::truncateSessions | 3.14 | 75.0% |
| phpMyFAQ\Controller\Administration\Api\TagController::delete | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoMysql::fetchRow | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoPgsql::fetchArray | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoPgsql::fetchRow | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoSqlite::fetchArray | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoSqlite::fetchRow | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoSqlite::fetchObject | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoSqlsrv::fetchArray | 3.14 | 75.0% |
| phpMyFAQ\Database\PdoSqlsrv::fetchRow | 3.14 | 75.0% |
| phpMyFAQ\Database\Sqlite3::fetchObject | 3.14 | 75.0% |
| phpMyFAQ\Database\Sqlite3::fetchArray | 3.14 | 75.0% |
| phpMyFAQ\Database\Sqlite3::fetchAssoc | 3.14 | 75.0% |
| phpMyFAQ\Database\Sqlsrv::fetchArray | 3.14 | 75.0% |
| phpMyFAQ\Database\Sqlsrv::numRows | 3.14 | 75.0% |
| phpMyFAQ\Link::getSystemScheme | 3.14 | 75.0% |
| phpMyFAQ\Plugin\PluginDiscovery::modificationTime | 3.14 | 75.0% |
| phpMyFAQ\Database\Sqlsrv::lastInsertId | 3.10 | 77.8% |
| phpMyFAQ\Setup\UpdateRunner::taskHealthCheck | 3.10 | 77.8% |
| phpMyFAQ\Faq\FaqCreationService::prepareAddFaqData | 3.09 | 78.3% |
| phpMyFAQ\Auth\AuthKeycloak::createUser | 3.07 | 80.0% |
| phpMyFAQ\Auth\AuthKeycloak::createMediumPermission | 3.07 | 80.0% |
| phpMyFAQ\Auth\AuthLdap::createMediumPermission | 3.07 | 80.0% |
| phpMyFAQ\Auth\AuthSso::createLdapAuth | 3.07 | 80.0% |
| phpMyFAQ\Auth\AuthSso::createUser | 3.07 | 80.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::asn1Integer | 3.07 | 80.0% |
| phpMyFAQ\Controller\Api\CategoryController::createCategoryPermission | 3.07 | 80.0% |
| phpMyFAQ\Controller\Api\CategoryController::createOrder | 3.07 | 80.0% |
| phpMyFAQ\Kernel::getContainer | 3.07 | 80.0% |
| phpMyFAQ\Language\Plurals::getMsgTemplate | 3.07 | 80.0% |
| phpMyFAQ\Storage\S3Storage::hasResultField | 3.07 | 80.0% |
| phpMyFAQ\Storage\S3Storage::getResultField | 3.07 | 80.0% |
| phpMyFAQ\System::checkRequiredExtensions | 3.07 | 80.0% |
| phpMyFAQ\User::getStatus | 3.07 | 80.0% |
| phpMyFAQ\User\UserSession::createNetwork | 3.07 | 80.0% |
| phpMyFAQ\Controller\Api\LoginController::login | 3.05 | 81.8% |
| phpMyFAQ\Attachment\File::getFile | 3.04 | 83.3% |
| phpMyFAQ\Captcha\BuiltinCaptcha::generateCaptchaCode | 3.04 | 83.3% |
| phpMyFAQ\Controller\Administration\Api\FormController::activateInput | 3.04 | 83.3% |
| phpMyFAQ\Controller\Administration\Api\FormController::setInputAsRequired | 3.04 | 83.3% |
| phpMyFAQ\Database\PdoMysql::getOne | 3.04 | 83.3% |
| phpMyFAQ\Database\PdoPgsql::getOne | 3.04 | 83.3% |
| phpMyFAQ\Database\PdoSqlite::getOne | 3.04 | 83.3% |
| phpMyFAQ\Database\PdoSqlsrv::getOne | 3.04 | 83.3% |
| phpMyFAQ\Forms::getTranslations | 3.04 | 83.3% |
| phpMyFAQ\Instance\Client::deleteClientFolder | 3.04 | 83.3% |
| phpMyFAQ\Permission\MediumPermission::deleteGroup | 3.04 | 83.3% |
| phpMyFAQ\Plugin\PluginManager::getMissingDependencies | 3.04 | 83.3% |
| phpMyFAQ\Setup\HtaccessUpdater::createBackup | 3.04 | 83.3% |
| phpMyFAQ\Utils::highlightNoLinks | 3.04 | 83.3% |
| phpMyFAQ\ConfigurationMethodsTrait::getAll | 3.04 | 83.3% |
| phpMyFAQ\Category::getCategoryIdsFromFaq | 3.03 | 85.7% |
| phpMyFAQ\Controller\Administration\Api\FormController::deleteTranslation | 3.03 | 85.7% |
| phpMyFAQ\Controller\Administration\Api\StatisticsController::clearRatings | 3.03 | 85.7% |
| phpMyFAQ\Database\PdoMysql::nextId | 3.03 | 85.7% |
| phpMyFAQ\Database\PdoPgsql::nextId | 3.03 | 85.7% |
| phpMyFAQ\Database\PdoSqlite::nextId | 3.03 | 85.7% |
| phpMyFAQ\Database\PdoSqlsrv::nextId | 3.03 | 85.7% |
| phpMyFAQ\Database\Pgsql::lastInsertId | 3.03 | 85.7% |
| phpMyFAQ\Permission\MediumPermission::addGroup | 3.03 | 85.7% |
| phpMyFAQ\Strings\StringBasic::getStringBasic | 3.03 | 85.7% |
| phpMyFAQ\Category::getPath | 3.02 | 87.5% |
| phpMyFAQ\Controller\Administration\Api\FormController::editTranslation | 3.02 | 86.7% |
| phpMyFAQ\Controller\Administration\Api\FormController::addTranslation | 3.02 | 86.7% |
| phpMyFAQ\Controller\Frontend\Api\QuestionController::isAddingQuestionsAllowed | 3.02 | 87.5% |
| phpMyFAQ\Plugin\PluginDiscovery::writeManifest | 3.02 | 87.5% |
| phpMyFAQ\Routing\RouteCollectionBuilder::loadAttributeRoutes | 3.02 | 87.5% |
| phpMyFAQ\Service\McpServer\McpSdkRuntime::buildServer | 3.02 | 87.0% |
| phpMyFAQ\Auth\EntraId\JwksProvider::writeCache | 3.01 | 90.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::delete | 3.01 | 88.2% |
| phpMyFAQ\Controller\Administration\Api\GlossaryController::create | 3.01 | 91.7% |
| phpMyFAQ\Controller\Administration\Api\StatisticsController::truncateSearchTerms | 3.01 | 90.0% |
| phpMyFAQ\Controller\Api\FaqController::getLatest | 3.01 | 88.9% |
| phpMyFAQ\Controller\Api\FaqController::getTrending | 3.01 | 88.9% |
| phpMyFAQ\Controller\Api\FaqController::update | 3.01 | 90.0% |
| phpMyFAQ\Controller\Frontend\Api\BookmarkController::deleteAll | 3.01 | 88.9% |
| phpMyFAQ\Database\Sqlsrv::nextId | 3.01 | 88.9% |
| phpMyFAQ\Push\PushSubscriptionRepository::getByUserId | 3.01 | 90.9% |
| phpMyFAQ\Push\PushSubscriptionRepository::getAll | 3.01 | 90.9% |
| phpMyFAQ\Routing\AttributeRouteLoader::createRouteFromAttribute | 3.01 | 88.9% |
| phpMyFAQ\User\PasswordResetTokenService::issue | 3.01 | 88.9% |
| phpMyFAQ\Utils::isForbiddenElement | 3.01 | 90.0% |
| phpMyFAQ\Visits\VisitsRepository::exists | 3.01 | 90.9% |
| phpMyFAQ\User\CurrentUserSessionLookupTrait::getFromCookie | 3.01 | 90.9% |
| phpMyFAQ\Administration\AdminLogRepository::getLastHash | 3 | 100.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::renderMetaRobotsDropdown | 3 | 100.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::renderReleaseTypeOptions | 3 | 100.0% |
| phpMyFAQ\Administration\Backup::generateBackupQueries | 3 | 100.0% |
| phpMyFAQ\Administration\Backup::executeBackupQueries | 3 | 100.0% |
| phpMyFAQ\Administration\Category::buildAdminCategoryTree | 3 | 100.0% |
| phpMyFAQ\Administration\RatingStatistics::getAll | 3 | 100.0% |
| phpMyFAQ\Administration\RatingStatistics::buildQuery | 3 | 100.0% |
| phpMyFAQ\Administration\RemoteApiClient::isVerified | 3 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::countTotalSessions | 3 | 100.0% |
| phpMyFAQ\Api\MetaService::extractThemeVariables | 3.00 | 93.3% |
| phpMyFAQ\Api\Pagination\PaginationMetadata::__construct | 3 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::saveMeta | 3 | 100.0% |
| phpMyFAQ\Attachment\File::createSubDirs | 3 | 100.0% |
| phpMyFAQ\Auth::getErrors | 3 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::getDisplayName | 3 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::redactIdentifier | 3 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::createUser | 3 | 100.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::buildLeagueAuthorizationServer | 3 | 100.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::parseInterval | 3 | 100.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::toPsr7Request | 3 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AccessTokenRepository::isAccessTokenRevoked | 3 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AuthCodeRepository::isAuthCodeRevoked | 3 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\RefreshTokenRepository::isRefreshTokenRevoked | 3 | 100.0% |
| phpMyFAQ\Auth\OAuth2\ResourceServer::toPsr7Request | 3 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::asn1Length | 3 | 100.0% |
| phpMyFAQ\Auth\WebAuthn\PublicKeyConverter::publicKeyToPem | 3 | 100.0% |
| phpMyFAQ\Bookmark::getBookmarkList | 3 | 100.0% |
| phpMyFAQ\Bootstrapper::connectDatabase | 3 | 100.0% |
| phpMyFAQ\Bootstrapper::fixProxyHeaders | 3 | 100.0% |
| phpMyFAQ\Cache\CacheFactory::create | 3 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::saveCaptcha | 3.00 | 92.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::checkCaptchaCode | 3 | 100.0% |
| phpMyFAQ\Captcha\Helper\GoogleRecaptchaAbstractHelper::renderCaptcha | 3 | 100.0% |
| phpMyFAQ\Category::getOrderedCategories | 3 | 100.0% |
| phpMyFAQ\Category::getCategoriesPaginated | 3.00 | 94.7% |
| phpMyFAQ\Category::getPathWithStartPage | 3.00 | 92.3% |
| phpMyFAQ\Category::getMissingCategories | 3 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::setGroups | 3 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::findByIdAndLanguage | 3 | 100.0% |
| phpMyFAQ\Category\Language\CategoryLanguageService::getLanguagesToTranslate | 3 | 100.0% |
| phpMyFAQ\Category\Language\CategoryLanguageService::getAllExistingTranslations | 3 | 100.0% |
| phpMyFAQ\Category\Navigation\BreadcrumbsBuilder::buildCategorySegments | 3 | 100.0% |
| phpMyFAQ\Category\Relation::add | 3 | 95.8% |
| phpMyFAQ\Category\Relation::delete | 3 | 100.0% |
| phpMyFAQ\Category\Tree\CategoryValidator::collectDirectChildren | 3 | 100.0% |
| phpMyFAQ\Category\Tree\TreePathResolver::getChildNodes | 3 | 100.0% |
| phpMyFAQ\Chat::sendMessage | 3 | 100.0% |
| phpMyFAQ\Chat::getConversation | 3.00 | 94.7% |
| phpMyFAQ\Chat::getNewMessages | 3 | 100.0% |
| phpMyFAQ\Chat::searchUsers | 3 | 100.0% |
| phpMyFAQ\Chat::getUserInfo | 3 | 100.0% |
| phpMyFAQ\Command\InstallCommand::env | 3 | 100.0% |
| phpMyFAQ\Command\McpServerCommand::execute | 3 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::insert | 3 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::isCommentAllowed | 3.00 | 93.3% |
| phpMyFAQ\Comments::getAllComments | 3.00 | 93.8% |
| phpMyFAQ\Configuration::__construct | 3 | 100.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::__construct | 3 | 100.0% |
| phpMyFAQ\Configuration\LdapConfiguration::__construct | 3 | 100.0% |
| phpMyFAQ\Configuration\LdapSettings::getLdapGroupConfig | 3 | 100.0% |
| phpMyFAQ\Configuration\MailSettings::getNoReplyEmail | 3 | 100.0% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchValue | 3 | 100.0% |
| phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::createIfEnabled | 3 | 100.0% |
| phpMyFAQ\Controller\AbstractController::getTwigWrapper | 3 | 100.0% |
| phpMyFAQ\Controller\AbstractController::userHasPermission | 3 | 100.0% |
| phpMyFAQ\Controller\AbstractController::getRateLimiter | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::getHeader | 3 | 97.9% |
| phpMyFAQ\Controller\Administration\Api\AdminLogController::delete | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\CategoryController::updateOrder | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationController::sendTestMail | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::templates | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::visits | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ElasticsearchController::import | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ElasticsearchController::healthcheck | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::search | 3 | 95.2% |
| phpMyFAQ\Controller\Administration\Api\GroupController::listGroups | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\GroupController::listMembers | 3.00 | 92.3% |
| phpMyFAQ\Controller\Administration\Api\MarkdownController::renderMarkdown | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\NewsController::create | 3.00 | 92.3% |
| phpMyFAQ\Controller\Administration\Api\NewsController::delete | 3.00 | 92.3% |
| phpMyFAQ\Controller\Administration\Api\OpenSearchController::import | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\OpenSearchController::healthcheck | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\CategoryController::index | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\CommentsController::index | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\FaqController::add | 3 | 98.1% |
| phpMyFAQ\Controller\Administration\FaqController::addInCategory | 3 | 98.3% |
| phpMyFAQ\Controller\Administration\FaqController::answer | 3 | 98.4% |
| phpMyFAQ\Controller\Administration\PageController::translate | 3 | 100.0% |
| phpMyFAQ\Controller\Administration\PageController::edit | 3 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::paginatedResponse | 3 | 100.0% |
| phpMyFAQ\Controller\Api\CategoryController::createCategory | 3 | 100.0% |
| phpMyFAQ\Controller\Api\CommentController::list | 3 | 96.9% |
| phpMyFAQ\Controller\Api\FaqController::getPopular | 3 | 100.0% |
| phpMyFAQ\Controller\Api\FaqController::getSticky | 3 | 100.0% |
| phpMyFAQ\Controller\Api\GroupController::list | 3 | 100.0% |
| phpMyFAQ\Controller\Api\SearchController::popular | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\PopularSearchesController::popular | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\TranslationController::translations | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\AzureAuthenticationController::getCurrentUserService | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\AzureAuthenticationController::loadAzureConfiguration | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::getCategoryImageUrl | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\FaqController::solution | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\FaqController::prepareCommentsData | 3 | 95.8% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::getCurrentUserService | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::createUser | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\SetupController::install | 3 | 100.0% |
| phpMyFAQ\Controller\Frontend\StartpageController::index | 3 | 100.0% |
| phpMyFAQ\Core\Error::exceptionHandler | 3 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::countAll | 3 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::countAllLanguages | 3 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::getExistingLanguages | 3 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::slugExists | 3 | 100.0% |
| phpMyFAQ\Database::getInstance | 3 | 100.0% |
| phpMyFAQ\Database\Sqlite3::getTableStatus | 3 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::getTableStatus | 3 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::formatErrors | 3 | 100.0% |
| phpMyFAQ\Date::createIsoDateFromUnixTimestamp | 3 | 100.0% |
| phpMyFAQ\Encryption::getInstance | 3 | 100.0% |
| phpMyFAQ\Environment::init | 3 | 100.0% |
| phpMyFAQ\EventListener\LanguageListener::onKernelRequest | 3 | 100.0% |
| phpMyFAQ\Export\Json::generate | 3 | 96.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::defineTcpdfConstants | 3 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::renderHeader | 3 | 100.0% |
| phpMyFAQ\Faq::getQuestion | 3 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::loadFaq | 3 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchKeywords | 3 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchFaqByIdAndCategoryId | 3 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::countRenderableFaqsByCategoryId | 3 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchAllRows | 3 | 100.0% |
| phpMyFAQ\Faq\Permission::delete | 3 | 100.0% |
| phpMyFAQ\Faq\QueryHelper::queryPermissionExistsAny | 3 | 100.0% |
| phpMyFAQ\Faq\QueryHelper::getCategoryIdWhereSequence | 3 | 100.0% |
| phpMyFAQ\Faq\RecordVisibility::isVisible | 3 | 100.0% |
| phpMyFAQ\Faq\Statistics::totalFaqs | 3 | 100.0% |
| phpMyFAQ\Filesystem\Filesystem::__construct | 3 | 100.0% |
| phpMyFAQ\Filter::getFilteredQueryString | 3 | 100.0% |
| phpMyFAQ\Forms::addTranslation | 3.00 | 93.3% |
| phpMyFAQ\Glossary\GlossaryRepository::fetchAll | 3 | 100.0% |
| phpMyFAQ\Glossary\GlossaryRepository::fetch | 3 | 100.0% |
| phpMyFAQ\Helper\FaqHelper::cleanUpContent | 3 | 100.0% |
| phpMyFAQ\Helper\MailHelper::sendMailToNewUser | 3 | 100.0% |
| phpMyFAQ\Helper\PermissionHelper::permOptions | 3 | 100.0% |
| phpMyFAQ\Helper\StatisticsHelper::renderMonthSelector | 3.00 | 92.3% |
| phpMyFAQ\Helper\SvgSanitizer::decodeAllEntities | 3 | 100.0% |
| phpMyFAQ\Helper\SvgSanitizer::removeDangerousContent | 3 | 100.0% |
| phpMyFAQ\Helper\UserHelper::getAllUsersForTemplate | 3 | 100.0% |
| phpMyFAQ\Instance::delete | 3 | 100.0% |
| phpMyFAQ\Instance\Client::createClientFolder | 3 | 100.0% |
| phpMyFAQ\Instance\Client::collectSeedRows | 3 | 100.0% |
| phpMyFAQ\Instance\Client::isValidClientHostname | 3 | 100.0% |
| phpMyFAQ\Instance\Database\PdoSqlite::createTables | 3 | 100.0% |
| phpMyFAQ\Instance\Database\Sqlite3::createTables | 3 | 100.0% |
| phpMyFAQ\Instance\Database\Stopwords::executeInsertQueries | 3 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::indexCustomPage | 3 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::indexCustomPage | 3 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::fetchFilteredLanguage | 3 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::getSessionLanguage | 3 | 100.0% |
| phpMyFAQ\Link::__construct | 3 | 100.0% |
| phpMyFAQ\Link::isInternalReference | 3 | 100.0% |
| phpMyFAQ\Link::ensureDefaultStrategies | 3 | 100.0% |
| phpMyFAQ\Link\Strategy\NewsStrategy::build | 3 | 100.0% |
| phpMyFAQ\Link\Strategy\StrategyRegistry::__construct | 3 | 100.0% |
| phpMyFAQ\Mail::__construct | 3 | 100.0% |
| phpMyFAQ\Mail\Provider\MailgunProvider::parseRecipients | 3 | 100.0% |
| phpMyFAQ\Mail\Provider\SendGridProvider::parseRecipients | 3 | 100.0% |
| phpMyFAQ\Mail\Provider\SesProvider::parseRecipients | 3 | 100.0% |
| phpMyFAQ\News\NewsRepository::countLatest | 3 | 100.0% |
| phpMyFAQ\News\NewsRepository::insert | 3 | 100.0% |
| phpMyFAQ\News\NewsRepository::update | 3 | 100.0% |
| phpMyFAQ\News\NewsService::getProcessedNews | 3 | 100.0% |
| phpMyFAQ\Pagination::addNavigationButtons | 3 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::getRightId | 3 | 100.0% |
| phpMyFAQ\Permission\GroupCategoryPermissionRepository::deleteCategoryRestrictions | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::grantGroupRight | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::checkGroupData | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::autoJoin | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::removeFromGroup | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::findOrCreateGroupByName | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::checkUserGroupRight | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::grantGroupRight | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::getGroupId | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::addToGroup | 3 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::removeFromGroup | 3 | 100.0% |
| phpMyFAQ\Plugin\PluginDiscovery::scan | 3 | 100.0% |
| phpMyFAQ\Plugin\PluginDiscovery::computeSignature | 3 | 100.0% |
| phpMyFAQ\Plugin\PluginDiscovery::getNamespaceFromFile | 3 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::mapRowToEntity | 3 | 100.0% |
| phpMyFAQ\Push\WebPushService::sendToAll | 3 | 100.0% |
| phpMyFAQ\Push\WebPushService::sendToUser | 3 | 100.0% |
| phpMyFAQ\Question::getAll | 3 | 100.0% |
| phpMyFAQ\Question\QuestionRepository::getById | 3 | 100.0% |
| phpMyFAQ\Question\QuestionRepository::getVisibility | 3 | 100.0% |
| phpMyFAQ\Queue\Message\ExportMessage::fromArray | 3 | 100.0% |
| phpMyFAQ\Queue\Message\SendMailMessage::fromArray | 3 | 100.0% |
| phpMyFAQ\Search\Database\PdoPgsql::getMatchingColumns | 3 | 100.0% |
| phpMyFAQ\Search\Database\PdoSqlite::search | 3 | 100.0% |
| phpMyFAQ\Search\Database\PdoSqlsrv::search | 3 | 100.0% |
| phpMyFAQ\Search\Database\Sqlite3::search | 3 | 100.0% |
| phpMyFAQ\Search\Database\Sqlsrv::search | 3 | 100.0% |
| phpMyFAQ\Search\Rating\RatingRepository::fetchByRecordId | 3 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::getJoinedTable | 3 | 100.0% |
| phpMyFAQ\Search\SearchFactory::create | 3 | 100.0% |
| phpMyFAQ\Session\SessionWrapper::__construct | 3 | 100.0% |
| phpMyFAQ\Session\Token::__unserialize | 3 | 100.0% |
| phpMyFAQ\Session\Token::getSession | 3 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::buildDefaultConfig | 3 | 99.5% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::generateDryRunReport | 3.00 | 92.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::getPendingMigrations | 3 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::getUnappliedMigrations | 3 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::recordMigration | 3 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::execute | 3 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::addBoolean | 3 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration407::up | 3 | 100.0% |
| phpMyFAQ\Setup\UpdateRunner::run | 3.00 | 93.3% |
| phpMyFAQ\Setup\UpdateRunner::shortenPath | 3 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::delete | 3 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::url | 3 | 100.0% |
| phpMyFAQ\Storage\S3Storage::url | 3 | 100.0% |
| phpMyFAQ\Storage\StorageFactory::readRequiredConfig | 3 | 100.0% |
| phpMyFAQ\Strings\Mbstring::getInstance | 3 | 100.0% |
| phpMyFAQ\Strings\Mbstring::substr | 3 | 100.0% |
| phpMyFAQ\Strings\Mbstring::preg_replace_callback | 3 | 100.0% |
| phpMyFAQ\Strings\Mbstring::preg_replace | 3 | 100.0% |
| phpMyFAQ\Tags::getAllLinkTagsById | 3 | 100.0% |
| phpMyFAQ\Tags::getTagNameById | 3 | 100.0% |
| phpMyFAQ\Template\ThemeManager::assertArchiveIsReadable | 3 | 100.0% |
| phpMyFAQ\Tenant\TenantContextResolver::resolve | 3 | 100.0% |
| phpMyFAQ\Tenant\TenantContextResolver::readStringEnv | 3 | 100.0% |
| phpMyFAQ\Translation\AbstractTranslationProvider::translate | 3 | 100.0% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::getApiUrl | 3 | 100.0% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::doTranslate | 3 | 100.0% |
| phpMyFAQ\Twig\Extensions\PermissionTranslationTwigExtension::getPermissionTranslation | 3 | 100.0% |
| phpMyFAQ\Twig\Extensions\TitleSlugifierTwigExtension::slugify | 3 | 100.0% |
| phpMyFAQ\User::isValidLogin | 3 | 100.0% |
| phpMyFAQ\User::getUserByLogin | 3 | 100.0% |
| phpMyFAQ\User::getWebAuthnKeys | 3 | 100.0% |
| phpMyFAQ\User\Tracking::countBots | 3 | 100.0% |
| phpMyFAQ\User\Tracking::getRemoteAddress | 3 | 100.0% |
| phpMyFAQ\User\Tracking::writeTrackingData | 3 | 97.2% |
| phpMyFAQ\User\Tracking::createNetwork | 3 | 100.0% |
| phpMyFAQ\User\TrackingDataRedactor::redactUrl | 3 | 100.0% |
| phpMyFAQ\User\UserAuthentication::hasExhaustedFailedLoginBudget | 3 | 100.0% |
| phpMyFAQ\User\UserData::fetch | 3 | 100.0% |
| phpMyFAQ\User\UserData::add | 3 | 100.0% |
| phpMyFAQ\User\UserData::emailExists | 3 | 100.0% |
| phpMyFAQ\User\UserSession::checkSessionId | 3 | 100.0% |
| phpMyFAQ\User\UserSession::setCookie | 3 | 100.0% |
| phpMyFAQ\Utils::isLikeOnPMFDate | 3 | 100.0% |
| phpMyFAQ\Utils::makeShorterText | 3 | 100.0% |
| phpMyFAQ\Utils::chopString | 3 | 100.0% |
| phpMyFAQ\Utils::getHostFromUrl | 3 | 100.0% |
| phpMyFAQ\Visits\VisitsRepository::getVisitCount | 3 | 100.0% |
| phpMyFAQ\Visits\VisitsRepository::getAll | 3 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getDefaultLanguage | 3 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::add | 3 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::replaceMainReferenceUrl | 3 | 100.0% |
| phpMyFAQ\User\CurrentUserSessionLookupTrait::getCurrentUser | 3 | 100.0% |
| phpMyFAQ\Attachment\File::getStorage | 2.86 | 40.0% |
| phpMyFAQ\Controller\Administration\LdapController::index | 2.75 | 42.9% |
| phpMyFAQ\Attachment\File::usesCloudStorage | 2.50 | 50.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::insert | 2.50 | 50.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::defineIfMissing | 2.50 | 50.0% |
| phpMyFAQ\Kernel::createContainerBuilder | 2.50 | 50.0% |
| phpMyFAQ\Setup\Installer::startInstall | 2.35 | 55.6% |
| phpMyFAQ\Environment::loadEnvironment | 2.26 | 60.0% |
| phpMyFAQ\Glossary\GlossaryRepository::prepareItem | 2.26 | 60.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::copyToSimple | 2.15 | 66.7% |
| phpMyFAQ\Auth::encrypt | 2.15 | 66.7% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::getCurrentTimestamp | 2.15 | 66.7% |
| phpMyFAQ\Category::updateParentCategory | 2.15 | 66.7% |
| phpMyFAQ\Database\Mysqli::numRows | 2.15 | 66.7% |
| phpMyFAQ\Database\PdoMysql::connect | 2.15 | 66.7% |
| phpMyFAQ\Database\PdoPgsql::connect | 2.15 | 66.7% |
| phpMyFAQ\Database\Sqlsrv::connect | 2.15 | 66.7% |
| phpMyFAQ\Instance\Search\Elasticsearch::getTokenizer | 2.15 | 66.7% |
| phpMyFAQ\Instance\Search\Elasticsearch::getNumberOfShards | 2.15 | 66.7% |
| phpMyFAQ\Instance\Search\Elasticsearch::getNumberOfReplicas | 2.15 | 66.7% |
| phpMyFAQ\Instance\Search\Elasticsearch::unwrapResponse | 2.15 | 66.7% |
| phpMyFAQ\Setup\Upgrade::getFilename | 2.15 | 66.7% |
| phpMyFAQ\Translation\Provider\AzureTranslationProvider::translateBatch | 2.15 | 66.7% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::translateBatch | 2.15 | 66.7% |
| phpMyFAQ\Translation\Provider\GoogleTranslationProvider::translateBatch | 2.15 | 66.7% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::translateBatch | 2.15 | 66.7% |
| phpMyFAQ\Visits::add | 2.15 | 66.7% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::readAttachmentSizeBytes | 2.11 | 70.0% |
| phpMyFAQ\Controller\AbstractController::createFallbackContainer | 2.09 | 71.4% |
| phpMyFAQ\Administration\TranslationStatistics::extractLanguageCode | 2.06 | 75.0% |
| phpMyFAQ\Auth\EntraId\EntraIdSession::setCurrentSessionKey | 2.06 | 75.0% |
| phpMyFAQ\Controller\AbstractController::getJsonObject | 2.06 | 75.0% |
| phpMyFAQ\Controller\Frontend\SetupController::getRelativeTokenFilePath | 2.06 | 75.0% |
| phpMyFAQ\Database\PdoMysql::fetchArray | 2.06 | 75.0% |
| phpMyFAQ\Database\PdoMysql::fetchObject | 2.06 | 75.0% |
| phpMyFAQ\Database\PdoPgsql::fetchObject | 2.06 | 75.0% |
| phpMyFAQ\Database\PdoSqlsrv::fetchObject | 2.06 | 75.0% |
| phpMyFAQ\Database\PdoSqlsrv::clientVersion | 2.06 | 75.0% |
| phpMyFAQ\Database\Sqlsrv::fetchObject | 2.06 | 75.0% |
| phpMyFAQ\Database\Sqlsrv::serverVersion | 2.06 | 75.0% |
| phpMyFAQ\Helper\CategoryHelper::getCategoryTreeData | 2.06 | 75.0% |
| phpMyFAQ\Instance\Client::setClientTemplateSet | 2.06 | 75.0% |
| phpMyFAQ\Permission\BasicPermission::grantUserRight | 2.06 | 75.0% |
| phpMyFAQ\Permission\BasicPermission::renameRight | 2.06 | 75.0% |
| phpMyFAQ\Search\SearchDatabase::buildInClause | 2.06 | 75.0% |
| phpMyFAQ\Setup\EnvironmentConfigurator::readHtaccess | 2.06 | 75.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::truncateQuery | 2.06 | 75.0% |
| phpMyFAQ\User::getUserIdByKeycloakSub | 2.06 | 75.0% |
| phpMyFAQ\ConfigurationMethodsTrait::runtimeObject | 2.06 | 75.0% |
| phpMyFAQ\Faq\FaqDisplayService::getRelatedFaqs | 2.04 | 77.8% |
| phpMyFAQ\Attachment\File::buildFilePath | 2.03 | 80.0% |
| phpMyFAQ\Container\ContainerCacheManager::writeCache | 2.03 | 80.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::initializeFromContainer | 2.03 | 80.0% |
| phpMyFAQ\Controller\Administration\Api\AbstractAdministrationApiController::initializeFromContainer | 2.03 | 80.0% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::maskLogin | 2.03 | 80.0% |
| phpMyFAQ\Database\Sqlite3::close | 2.03 | 80.0% |
| phpMyFAQ\Database\Sqlsrv::error | 2.03 | 80.0% |
| phpMyFAQ\Faq\MetaData::save | 2.03 | 81.2% |
| phpMyFAQ\Setup\EnvironmentConfigurator::getRewriteBase | 2.03 | 80.0% |
| phpMyFAQ\Administration\Faq::userCanEditFaq | 2.02 | 83.3% |
| phpMyFAQ\Auth\EntraId\JwksProvider::__construct | 2.02 | 83.3% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::base64UrlDecode | 2.02 | 83.3% |
| phpMyFAQ\Category\CategoryRepository::create | 2.02 | 81.8% |
| phpMyFAQ\Controller\Administration\Api\GroupController::groupData | 2.02 | 83.3% |
| phpMyFAQ\Controller\Administration\Api\GroupController::listPermissions | 2.02 | 83.3% |
| phpMyFAQ\Instance\Client::createClientTables | 2.02 | 84.1% |
| phpMyFAQ\Administration\DashboardLayout::hasRow | 2.01 | 88.9% |
| phpMyFAQ\Administration\TranslationStatistics::getTranslationKeys | 2.01 | 85.7% |
| phpMyFAQ\Auth\ApiKeyAuthenticator::hasRequiredScopes | 2.01 | 85.7% |
| phpMyFAQ\Auth\AuthDatabase::isValidLogin | 2.01 | 87.5% |
| phpMyFAQ\Captcha\BuiltinCaptcha::removeCaptcha | 2.01 | 87.5% |
| phpMyFAQ\Category::transform | 2.01 | 88.9% |
| phpMyFAQ\Category\CategoryRepository::findCategoryIdByName | 2.01 | 88.9% |
| phpMyFAQ\Controller\AbstractController::captchaCodeIsValid | 2.01 | 85.7% |
| phpMyFAQ\Controller\Administration\ElasticsearchController::index | 2.01 | 85.7% |
| phpMyFAQ\Controller\Administration\OpenSearchController::index | 2.01 | 85.7% |
| phpMyFAQ\Controller\Frontend\CategoryController::getFaqRecords | 2.01 | 87.5% |
| phpMyFAQ\Controller\Frontend\ErrorController::internalServerError | 2.01 | 84.6% |
| phpMyFAQ\Storage\TenantScopedStorage::prefixPath | 2.01 | 87.5% |
| phpMyFAQ\Administration\AdminLog::log | 2 | 100.0% |
| phpMyFAQ\Administration\AdminLogRepository::add | 2 | 100.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::sortingKeyOptions | 2 | 100.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::sortingOrderOptions | 2 | 100.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::sortingPopularFaqsOptions | 2 | 100.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::generateOption | 2 | 100.0% |
| phpMyFAQ\Administration\Backup::createBackup | 2 | 100.0% |
| phpMyFAQ\Administration\Backup::verifyBackup | 2 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::getAll | 2 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::deleteById | 2 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::deleteByFilename | 2 | 100.0% |
| phpMyFAQ\Administration\Category::getOwner | 2 | 100.0% |
| phpMyFAQ\Administration\DashboardLayout::save | 2 | 100.0% |
| phpMyFAQ\Administration\Faq::getContentHealthStatistics | 2 | 0.0% |
| phpMyFAQ\Administration\Faq::buildGroupAwareFaqAccessQuery | 2 | 0.0% |
| phpMyFAQ\Administration\Report::sanitize | 2 | 100.0% |
| phpMyFAQ\Administration\Session::getSessionsByDate | 2 | 100.0% |
| phpMyFAQ\Administration\TranslationStatistics::getMissingKeys | 2 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::toArray | 2 | 100.0% |
| phpMyFAQ\Api\Response\ApiResponse::success | 2 | 100.0% |
| phpMyFAQ\Api\Response\ApiResponse::error | 2 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::toSqlOrderBy | 2 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::toArray | 2 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::__construct | 2 | 100.0% |
| phpMyFAQ\Attachment\AbstractMimeType::guessByExt | 2 | 100.0% |
| phpMyFAQ\Attachment\AttachmentCollection::getBreadcrumbs | 2 | 100.0% |
| phpMyFAQ\Attachment\AttachmentFactory::countByRecordId | 2 | 100.0% |
| phpMyFAQ\Attachment\AttachmentService::checkUserPermission | 2 | 100.0% |
| phpMyFAQ\Attachment\AttachmentService::getGenericErrorMessage | 2 | 100.0% |
| phpMyFAQ\Attachment\File::buildStoragePath | 2 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractEntry::moveTo | 2 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::__construct | 2 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::__destruct | 2 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::setMode | 2 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\File\VanillaFile::getChunk | 2 | 100.0% |
| phpMyFAQ\Auth::addError | 2 | 0.0% |
| phpMyFAQ\Auth\ApiKeyAuthenticator::getAuthenticatedUserId | 2 | 100.0% |
| phpMyFAQ\Auth\AuthEntraId::isValidLogin | 2 | 100.0% |
| phpMyFAQ\Auth\AuthHttp::isValidLogin | 2 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::isValidLogin | 2 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::findUser | 2 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::shouldAssignGroups | 2 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::shouldSynchronizeGroupsOnLogin | 2 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::__construct | 2 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::extractGroupNameFromDn | 2 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::connect | 2 | 100.0% |
| phpMyFAQ\Auth\AuthSso::create | 2 | 100.0% |
| phpMyFAQ\Auth\AuthSso::isValidLogin | 2 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::prepareChallengeForRegistration | 2 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::getUserFromSession | 2 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::decodeSignedClientData | 2 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::byteString | 2 | 100.0% |
| phpMyFAQ\Auth\EntraId\EntraIdSession::getCurrentSessionKey | 2 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::setJwksProvider | 2 | 0.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::getConfigString | 2 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Entity\ClientEntity::supportsGrantType | 2 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\RefreshTokenRepository::persistNewRefreshToken | 2 | 100.0% |
| phpMyFAQ\Auth\OAuth2\ResourceServer::getConfigString | 2 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::validate | 2 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::normalizeKey | 2 | 100.0% |
| phpMyFAQ\Auth\PasswordHasher::verify | 2 | 100.0% |
| phpMyFAQ\Auth\PasswordHasher::needsRehash | 2 | 100.0% |
| phpMyFAQ\Bookmark::add | 2 | 100.0% |
| phpMyFAQ\Bookmark::getAll | 2 | 100.0% |
| phpMyFAQ\Bookmark::remove | 2 | 100.0% |
| phpMyFAQ\Bookmark::removeAll | 2 | 100.0% |
| phpMyFAQ\Bookmark\BookmarkRepository::add | 2 | 100.0% |
| phpMyFAQ\Bookmark\BookmarkRepository::getAll | 2 | 100.0% |
| phpMyFAQ\Bookmark\BookmarkRepository::remove | 2 | 100.0% |
| phpMyFAQ\Bootstrap\ConfigDirectoryResolver::resolveAttachmentsDir | 2 | 100.0% |
| phpMyFAQ\Bootstrap\PhpConfigurator::fixIncludePath | 2 | 100.0% |
| phpMyFAQ\Cache\CacheSettingsResolver::normalizeRedisPrefix | 2 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::getCaptchaImage | 2 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::createBackground | 2 | 100.0% |
| phpMyFAQ\Captcha\Captcha::getInstance | 2 | 100.0% |
| phpMyFAQ\Captcha\Helper\CaptchaHelper::getInstance | 2 | 100.0% |
| phpMyFAQ\Category::getCategoryRepository | 2 | 100.0% |
| phpMyFAQ\Category::getTreeBuilder | 2 | 100.0% |
| phpMyFAQ\Category::getBreadcrumbsBuilder | 2 | 100.0% |
| phpMyFAQ\Category::getBreadcrumbsHtmlRenderer | 2 | 100.0% |
| phpMyFAQ\Category::getAdminCategoryTreePresenter | 2 | 100.0% |
| phpMyFAQ\Category::getCategoryService | 2 | 100.0% |
| phpMyFAQ\Category::getTreeFacade | 2 | 100.0% |
| phpMyFAQ\Category::setGroups | 2 | 100.0% |
| phpMyFAQ\Category::getAllCategories | 2 | 100.0% |
| phpMyFAQ\Category::countCategories | 2 | 0.0% |
| phpMyFAQ\Category::getCategoryData | 2 | 100.0% |
| phpMyFAQ\Category::getCategoriesFromFaq | 2 | 100.0% |
| phpMyFAQ\Category::getCategoryLanguagesTranslated | 2 | 0.0% |
| phpMyFAQ\Category\CategoryCache::updateTreeTabEntry | 2 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::getOwner | 2 | 100.0% |
| phpMyFAQ\Category\CategoryService::updateParentCategory | 2 | 100.0% |
| phpMyFAQ\Category\Image::setUploadedFile | 2 | 100.0% |
| phpMyFAQ\Category\Image::getFileName | 2 | 100.0% |
| phpMyFAQ\Category\Language\CategoryLanguageService::getExistingTranslations | 2 | 100.0% |
| phpMyFAQ\Category\Language\CategoryLanguageService::getLanguagesInUse | 2 | 100.0% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::expand | 2 | 100.0% |
| phpMyFAQ\Category\Permission::normalizeCategoryIds | 2 | 100.0% |
| phpMyFAQ\Category\Permission\CategoryPermissionService::buildPermissionWhereClause | 2 | 100.0% |
| phpMyFAQ\Category\Relation::normalizeIdList | 2 | 100.0% |
| phpMyFAQ\Category\Relation::deleteByFAQ | 2 | 100.0% |
| phpMyFAQ\Category\Tree\TreeBuilder::getBrothers | 2 | 0.0% |
| phpMyFAQ\Category\Tree\TreePathResolver::getChildren | 2 | 100.0% |
| phpMyFAQ\Chat::markAsRead | 2 | 100.0% |
| phpMyFAQ\Chat::markConversationAsRead | 2 | 100.0% |
| phpMyFAQ\Chat::getUnreadCount | 2 | 100.0% |
| phpMyFAQ\Chat::messagesToArray | 2 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::fetchByReferenceIdAndType | 2 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::countByTypeGroupedByRecordId | 2 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::countByCategoryForFaq | 2 | 100.0% |
| phpMyFAQ\Comments::getCommentsData | 2 | 100.0% |
| phpMyFAQ\Comments::getCommentsDataPaginated | 2 | 100.0% |
| phpMyFAQ\Comments::getNumberOfComments | 2 | 100.0% |
| phpMyFAQ\Comments::getNumberOfCommentsByCategory | 2 | 100.0% |
| phpMyFAQ\Comments::isCommentAllowed | 2 | 0.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::getFaqDataContents | 2 | 100.0% |
| phpMyFAQ\Configuration\MailSettings::getProvider | 2 | 100.0% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::fetchAll | 2 | 100.0% |
| phpMyFAQ\Configuration\Storage\HybridConfigurationStore::resolveRedisStore | 2 | 100.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::updateConfigValue | 2 | 100.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getRedisClient | 2 | 100.0% |
| phpMyFAQ\Configuration\UrlSettings::getDefaultUrl | 2 | 100.0% |
| phpMyFAQ\Configuration\UrlSettings::getAllowedMediaHosts | 2 | 100.0% |
| phpMyFAQ\Container\ContainerCacheManager::__construct | 2 | 100.0% |
| phpMyFAQ\Container\ContainerRegistry::set | 2 | 0.0% |
| phpMyFAQ\Container\ContainerRegistry::get | 2 | 0.0% |
| phpMyFAQ\Container\ContainerRegistry::reset | 2 | 0.0% |
| phpMyFAQ\Controller\AbstractController::renderView | 2 | 0.0% |
| phpMyFAQ\Controller\AbstractController::userIsAuthenticated | 2 | 100.0% |
| phpMyFAQ\Controller\AbstractController::userIsSuperAdmin | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationController::activateMaintenanceMode | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::list | 2.00 | 92.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::translations | 2.00 | 92.9% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::cacheAdapter | 2 | 0.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::storeCache | 2 | 0.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::topTen | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ElasticsearchController::create | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ElasticsearchController::drop | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ExportController::hasDataField | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\GroupController::listUsers | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\OpenSearchController::create | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\OpenSearchController::drop | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\StopWordController::list | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::cleanUp | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::isValidUpdatePackageToken | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UserController::userData | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\AttachmentsController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\AuthenticationController::token | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\CategoryController::addChild | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\CategoryController::getBaseTemplateVars | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\FaqController::copy | 2 | 98.1% |
| phpMyFAQ\Controller\Administration\FaqController::translate | 2 | 98.1% |
| phpMyFAQ\Controller\Administration\InstanceController::getBaseTemplateVars | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\NewsController::edit | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\RatingController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\StatisticsSearchController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\StatisticsSessionsController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\StatisticsSessionsController::viewDay | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\StatisticsSessionsController::viewSession | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\StickyFaqsController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::initializeFromContainer | 2 | 100.0% |
| phpMyFAQ\Controller\Api\BackupController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Api\FaqController::getByCategoryId | 2 | 100.0% |
| phpMyFAQ\Controller\Api\FaqController::getByTagId | 2 | 100.0% |
| phpMyFAQ\Controller\Api\FaqController::withRequestLanguage | 2 | 100.0% |
| phpMyFAQ\Controller\Api\LanguageController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Api\LoginController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Api\MetaController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Api\OAuth2Controller::getAuthorizationServer | 2 | 100.0% |
| phpMyFAQ\Controller\Api\PdfController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Api\RegistrationController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Api\TitleController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Api\VersionController::__construct | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\CaptchaController::renderImage | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ChatController::searchUsers | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\CommentController::isCommentAllowed | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\FaqController::isAddingFaqsAllowed | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::denyUnauthorizedRequest | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::isAuthorizedForUpdate | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::tooManyRequests | 2 | 0.0% |
| phpMyFAQ\Controller\Frontend\AttachmentController::createDownloadResponse | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\AuthenticationController::token | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\AzureAuthenticationController::authorize | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::renderAllCategories | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\ChatController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\GlossaryController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\NewsController::prepareCommentsData | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\OAuthDiscoveryController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\QuestionsController::index | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\UserController::bookmarks | 2 | 100.0% |
| phpMyFAQ\Controller\Frontend\UserController::register | 2 | 100.0% |
| phpMyFAQ\Controller\SitemapController::index | 2 | 100.0% |
| phpMyFAQ\CustomPage::getAllPages | 2 | 100.0% |
| phpMyFAQ\CustomPage::getPagesPaginated | 2 | 100.0% |
| phpMyFAQ\CustomPage::getAllLanguagesPaginated | 2 | 100.0% |
| phpMyFAQ\CustomPage::getById | 2 | 100.0% |
| phpMyFAQ\CustomPage::getBySlug | 2 | 100.0% |
| phpMyFAQ\CustomPage::update | 2 | 100.0% |
| phpMyFAQ\CustomPage::generateUniqueSlug | 2 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::getById | 2 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::getBySlug | 2 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::activate | 2 | 100.0% |
| phpMyFAQ\Database::errorPage | 2 | 100.0% |
| phpMyFAQ\Database\DatabaseHelper::alignTablePrefixByPattern | 2 | 100.0% |
| phpMyFAQ\Database\Mysqli::fetchArray | 2 | 100.0% |
| phpMyFAQ\Database\Mysqli::fetchRow | 2 | 100.0% |
| phpMyFAQ\Database\Mysqli::fetchObject | 2 | 100.0% |
| phpMyFAQ\Database\Mysqli::getTableStatus | 2 | 100.0% |
| phpMyFAQ\Database\Mysqli::getOne | 2 | 100.0% |
| phpMyFAQ\Database\Mysqli::nextId | 2 | 100.0% |
| phpMyFAQ\Database\Mysqli::clientVersion | 2 | 0.0% |
| phpMyFAQ\Database\Mysqli::serverVersion | 2 | 0.0% |
| phpMyFAQ\Database\Mysqli::lastInsertId | 2 | 0.0% |
| phpMyFAQ\Database\Mysqli::now | 2 | 0.0% |
| phpMyFAQ\Database\PdoMysql::fetchAll | 2 | 100.0% |
| phpMyFAQ\Database\PdoMysql::numRows | 2 | 100.0% |
| phpMyFAQ\Database\PdoMysql::getTableStatus | 2 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::fetchAll | 2 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::numRows | 2 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::getTableStatus | 2 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::connect | 2 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::fetchAll | 2 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::getTableStatus | 2 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::error | 2 | 0.0% |
| phpMyFAQ\Database\PdoSqlsrv::escape | 2 | 0.0% |
| phpMyFAQ\Database\PdoSqlsrv::fetchAll | 2 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::numRows | 2 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::getTableStatus | 2 | 100.0% |
| phpMyFAQ\Database\Pgsql::fetchArray | 2 | 100.0% |
| phpMyFAQ\Database\Pgsql::getOne | 2 | 100.0% |
| phpMyFAQ\Database\Sqlite3::fetchRow | 2 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::close | 2 | 100.0% |
| phpMyFAQ\Date::createIsoDate | 2 | 100.0% |
| phpMyFAQ\Date::getTrackingFileDateStart | 2 | 100.0% |
| phpMyFAQ\Date::getTrackingFileDateEnd | 2 | 100.0% |
| phpMyFAQ\Date::format | 2 | 100.0% |
| phpMyFAQ\Encryption::encrypt | 2 | 0.0% |
| phpMyFAQ\Encryption::error | 2 | 100.0% |
| phpMyFAQ\Entity\AdminLog::verifyIntegrity | 2 | 100.0% |
| phpMyFAQ\Entity\Comment::jsonSerialize | 2 | 0.0% |
| phpMyFAQ\Entity\FaqEntity::getValidFrom | 2 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getValidTo | 2 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getCreatedDate | 2 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getJson | 2 | 100.0% |
| phpMyFAQ\EventListener\ControllerContainerListener::requiresAdminAuthentication | 2 | 100.0% |
| phpMyFAQ\EventListener\WebExceptionListener::handleErrorResponse | 2 | 100.0% |
| phpMyFAQ\Export::getExportTimestamp | 2 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfDocument::Header | 2 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfDocument::Footer | 2 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setTitle | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setAuthor | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setCreator | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setHeaderMargin | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setFooterMargin | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setFontSubsetting | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setImageScale | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setDefaultMonospacedFont | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::write | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetMargins | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetHeaderMargin | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetFooterMargin | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetCreator | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetTitle | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetAuthor | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetFont | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::Ln | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::Write | 2 | 0.0% |
| phpMyFAQ\Export\Pdf\Wrapper::concatenatePaths | 2 | 100.0% |
| phpMyFAQ\Faq::__construct | 2 | 100.0% |
| phpMyFAQ\Faq::getFaqsByIds | 2 | 100.0% |
| phpMyFAQ\Faq::isFaqAccessibleForUser | 2 | 100.0% |
| phpMyFAQ\Faq::getCurrentLanguage | 2 | 100.0% |
| phpMyFAQ\Faq::getFaqByIdAndCategoryId | 2 | 100.0% |
| phpMyFAQ\Faq::normalizeSortDirection | 2 | 100.0% |
| phpMyFAQ\Faq::normalizeFaqIds | 2 | 100.0% |
| phpMyFAQ\Faq\FaqCreationService::canUserAddFaq | 2 | 100.0% |
| phpMyFAQ\Faq\FaqCreationService::getDefaultUserEmail | 2 | 100.0% |
| phpMyFAQ\Faq\FaqCreationService::getDefaultUserName | 2 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::shouldApplyHighlighting | 2 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::getSolutionIdFromId | 2 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::getIdFromSolutionId | 2 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchFaqsByIds | 2 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::deleteByIdAndLanguage | 2 | 100.0% |
| phpMyFAQ\Faq\Import::parseCSV | 2 | 100.0% |
| phpMyFAQ\Faq\QueryHelper::queryPermissionExistsAll | 2 | 100.0% |
| phpMyFAQ\Faq\QueryHelper::userGrantExists | 2 | 100.0% |
| phpMyFAQ\Faq\QueryHelper::normalizeIdList | 2 | 100.0% |
| phpMyFAQ\Faq\QuestionService::canUserAskQuestion | 2 | 100.0% |
| phpMyFAQ\Faq\QuestionService::getDefaultUserEmail | 2 | 100.0% |
| phpMyFAQ\Faq\QuestionService::getDefaultUserName | 2 | 100.0% |
| phpMyFAQ\Faq\RecordVisibility::isPermitted | 2 | 100.0% |
| phpMyFAQ\Faq\Statistics::__construct | 2 | 100.0% |
| phpMyFAQ\Faq\Statistics::getLatest | 2 | 100.0% |
| phpMyFAQ\Faq\Statistics::getTrending | 2 | 100.0% |
| phpMyFAQ\Filesystem\Filesystem::createDirectory | 2 | 100.0% |
| phpMyFAQ\Filter::sanitizeQueryValue | 2 | 100.0% |
| phpMyFAQ\Filter::filterHtml | 2 | 100.0% |
| phpMyFAQ\Form\FormsRepository::fetchFormDataByFormId | 2 | 100.0% |
| phpMyFAQ\Form\FormsRepository::fetchTranslationsByFormAndInput | 2 | 100.0% |
| phpMyFAQ\Form\FormsRepository::fetchDefaultInputData | 2 | 100.0% |
| phpMyFAQ\Forms::getTranslatedLanguages | 2 | 100.0% |
| phpMyFAQ\Glossary::fetchAll | 2 | 100.0% |
| phpMyFAQ\Glossary::create | 2 | 100.0% |
| phpMyFAQ\Glossary::update | 2 | 100.0% |
| phpMyFAQ\Glossary::delete | 2 | 100.0% |
| phpMyFAQ\Glossary::getLanguage | 2 | 0.0% |
| phpMyFAQ\Glossary::currentLanguage | 2 | 100.0% |
| phpMyFAQ\Glossary\GlossaryRepository::create | 2 | 100.0% |
| phpMyFAQ\Glossary\GlossaryRepository::update | 2 | 100.0% |
| phpMyFAQ\Glossary\GlossaryRepository::delete | 2 | 100.0% |
| phpMyFAQ\Helper\AttachmentHelper::getAttachmentList | 2 | 100.0% |
| phpMyFAQ\Helper\CategoryHelper::renderCategoryTree | 2 | 100.0% |
| phpMyFAQ\Helper\CategoryHelper::buildAvailableCategoryTranslationsList | 2 | 100.0% |
| phpMyFAQ\Helper\CategoryHelper::normalizeCategoryTree | 2 | 100.0% |
| phpMyFAQ\Helper\CategoryHelper::renderAvailableTranslationsOptions | 2 | 100.0% |
| phpMyFAQ\Helper\FaqHelper::renderAnswerPreview | 2 | 100.0% |
| phpMyFAQ\Helper\FaqHelper::createOverview | 2 | 0.0% |
| phpMyFAQ\Helper\QuestionHelper::generateSmartAnswer | 2 | 100.0% |
| phpMyFAQ\Helper\RegistrationHelper::buildRegistrationResponse | 2 | 0.0% |
| phpMyFAQ\Helper\TagsHelper::renderTagList | 2 | 100.0% |
| phpMyFAQ\Helper\TagsHelper::renderSearchTag | 2 | 100.0% |
| phpMyFAQ\Http\RateLimiter::__construct | 2 | 100.0% |
| phpMyFAQ\Http\RateLimiter::check | 2 | 100.0% |
| phpMyFAQ\Instance::create | 2 | 100.0% |
| phpMyFAQ\Instance::getById | 2 | 100.0% |
| phpMyFAQ\Instance::getInstanceConfig | 2 | 100.0% |
| phpMyFAQ\Instance\Client::createClient | 2 | 0.0% |
| phpMyFAQ\Instance\Client::executeSchemaQuery | 2 | 100.0% |
| phpMyFAQ\Instance\Client::copyTemplateFolder | 2 | 100.0% |
| phpMyFAQ\Instance\Client::isMultiSiteWriteable | 2 | 0.0% |
| phpMyFAQ\Instance\Database::__construct | 2 | 0.0% |
| phpMyFAQ\Instance\Database::factory | 2 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::__construct | 2 | 0.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::createIndex | 2 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::dropIndex | 2 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::index | 2 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::update | 2 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::delete | 2 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::deleteCustomPage | 2 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::__construct | 2 | 0.0% |
| phpMyFAQ\Instance\Search\OpenSearch::createIndex | 2 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::isAvailable | 2 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::deleteCustomPage | 2 | 100.0% |
| phpMyFAQ\Instance\Setup::createAnonymousUser | 2 | 0.0% |
| phpMyFAQ\Instance\Setup::createElasticsearchFile | 2 | 100.0% |
| phpMyFAQ\Instance\Setup::createOpenSearchFile | 2 | 100.0% |
| phpMyFAQ\Kernel::createHttpKernel | 2 | 100.0% |
| phpMyFAQ\Language::isASupportedLanguage | 2 | 100.0% |
| phpMyFAQ\Language\LanguageCodes::getSupported | 2 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::getAcceptLanguage | 2 | 0.0% |
| phpMyFAQ\Language\LanguageDetector::getConfigLanguage | 2 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::getDetectionLanguage | 2 | 100.0% |
| phpMyFAQ\Language\Plurals::__construct | 2 | 100.0% |
| phpMyFAQ\Ldap::error | 2 | 100.0% |
| phpMyFAQ\Link::getSystemRelativeUri | 2 | 100.0% |
| phpMyFAQ\Link::toStringWithoutSession | 2 | 100.0% |
| phpMyFAQ\Link::buildActionUrl | 2 | 100.0% |
| phpMyFAQ\Link::isRelativeSystemLink | 2 | 100.0% |
| phpMyFAQ\Link::getDefaultScheme | 2 | 100.0% |
| phpMyFAQ\Link::isSystemLink | 2 | 100.0% |
| phpMyFAQ\Link::isHomeIndex | 2 | 100.0% |
| phpMyFAQ\Link::getSEOTitle | 2 | 100.0% |
| phpMyFAQ\Link::appendSessionId | 2 | 100.0% |
| phpMyFAQ\Link\Strategy\StrategyRegistry::list | 2 | 0.0% |
| phpMyFAQ\Link\Util\TitleSlugifier::replacePattern | 2 | 100.0% |
| phpMyFAQ\Mail::getServerName | 2 | 100.0% |
| phpMyFAQ\Mail::setEmailTo | 2 | 100.0% |
| phpMyFAQ\Mail::isQueueDeliveryEnabled | 2 | 100.0% |
| phpMyFAQ\Mail::safeEmail | 2 | 100.0% |
| phpMyFAQ\Mail\Provider\MailgunProvider::extractEmailAddress | 2 | 100.0% |
| phpMyFAQ\Mail\Provider\SendGridProvider::extractEmailAddress | 2 | 100.0% |
| phpMyFAQ\Mail\Provider\SesProvider::extractEmailAddress | 2 | 100.0% |
| phpMyFAQ\Mail\Smtp::setAuthConfig | 2 | 100.0% |
| phpMyFAQ\News::getLatestDataPaginated | 2 | 100.0% |
| phpMyFAQ\News::getHeader | 2 | 100.0% |
| phpMyFAQ\News\NewsRepository::activate | 2 | 100.0% |
| phpMyFAQ\News\NewsService::getEditLink | 2 | 100.0% |
| phpMyFAQ\News\NewsService::formatNewsDate | 2 | 100.0% |
| phpMyFAQ\News\NewsService::getAuthorInfo | 2 | 100.0% |
| phpMyFAQ\Notification::sendOpenQuestionAnswered | 2 | 100.0% |
| phpMyFAQ\Notification::sendNewsCommentNotification | 2 | 100.0% |
| phpMyFAQ\Pagination::shouldSkipBeforeCurrentPage | 2 | 100.0% |
| phpMyFAQ\Pagination::shouldSkipAfterCurrentPage | 2 | 100.0% |
| phpMyFAQ\Pagination::renderPageLink | 2 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::getUserRightsCount | 2 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::getUserGroups | 2 | 0.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::checkUserRight | 2 | 100.0% |
| phpMyFAQ\Permission\GroupCategoryPermissionRepository::deleteAllForGroup | 2 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getAllUserRights | 2 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::deleteGroup | 2 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::removeFromAllGroups | 2 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::refuseAllGroupRights | 2 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::removeAllUsersFromGroup | 2 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getAllPluginStylesheets | 2 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getAllPluginScripts | 2 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::hasSubscription | 2 | 100.0% |
| phpMyFAQ\Question::updateQuestionAnswer | 2 | 0.0% |
| phpMyFAQ\Question\QuestionRepository::add | 2 | 100.0% |
| phpMyFAQ\Queue\DatabaseMessageBus::dispatch | 2 | 100.0% |
| phpMyFAQ\Queue\Transport\DatabaseTransport::enqueue | 2 | 100.0% |
| phpMyFAQ\Queue\Transport\DatabaseTransport::release | 2 | 100.0% |
| phpMyFAQ\Rating::get | 2 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::__construct | 2 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::clearContext | 2 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::writeCache | 2 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::readCache | 2 | 100.0% |
| phpMyFAQ\Scheduler\TaskScheduler::aggregateStatistics | 2 | 100.0% |
| phpMyFAQ\Scheduler\TaskScheduler::createBackup | 2 | 100.0% |
| phpMyFAQ\Search::logSearchTerm | 2 | 100.0% |
| phpMyFAQ\Search::getSearchesCount | 2 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::getJoinedColumns | 2 | 100.0% |
| phpMyFAQ\Service\McpServer\McpSdkRuntime::runConsole | 2 | 0.0% |
| phpMyFAQ\Service\McpServer\PhpMyFaqMcpServer::__construct | 2 | 100.0% |
| phpMyFAQ\Service\McpServer\PhpMyFaqMcpServer::createServerInfo | 2 | 0.0% |
| phpMyFAQ\Session\Token::getInstance | 2 | 100.0% |
| phpMyFAQ\Setup\InMemoryHtaccessFile::valid | 2 | 0.0% |
| phpMyFAQ\Setup\InMemoryHtaccessFile::isReadable | 2 | 0.0% |
| phpMyFAQ\Setup\Installation\SchemaInstaller::executeSql | 2 | 100.0% |
| phpMyFAQ\Setup\InstallationInput::getEmail | 2 | 0.0% |
| phpMyFAQ\Setup\InstallationInputValidator::isLdapEnabled | 2 | 100.0% |
| phpMyFAQ\Setup\InstallationRunner::configuration | 2 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::db | 2 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::run | 2 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepInsertStopwords | 2 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepCreateAnonymousUser | 2 | 0.0% |
| phpMyFAQ\Setup\InstallationRunner::stepCreateInstance | 2 | 0.0% |
| phpMyFAQ\Setup\Installer::hasElasticsearchSupport | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::getConfig | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::collectOperations | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::getLatestVersion | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::addOperationResult | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::isApplied | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::shortenPath | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::shortenPath | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FormInputInsertOperation::execute | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::createUser | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::insertFormInput | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::getSqlQueries | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::getOperationCounts | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\SqlOperation::execute | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::table | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::addInteger | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::addVarchar | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::addTimestamp | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::createTablePrefix | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::addColumn | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::createIndex | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::date | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::createTablePrefix | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::createIndex | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::supportsCombinedAlter | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::date | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::createTablePrefix | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::createIndex | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::supportsCombinedAlter | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::date | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::createTablePrefix | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::createIndex | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::supportsCombinedAlter | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\DialectFactory::create | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::dropTable | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::dropTableIfExists | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::createIndex | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::createIndexIfNotExists | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::dropIndex | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::table | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::integer | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::bigInteger | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::smallInteger | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::varchar | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::timestamp | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::date | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::char | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::autoIncrement | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta2::up | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320RC::up | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration409::up | 2 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha::up | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha2::up | 2 | 0.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration420Alpha::getDescription | 2 | 0.0% |
| phpMyFAQ\Setup\Update::getDryRunResults | 2 | 0.0% |
| phpMyFAQ\Setup\Update::getFormattedDryRunReport | 2 | 0.0% |
| phpMyFAQ\Setup\Update::updateVersion | 2 | 0.0% |
| phpMyFAQ\Setup\Update::getBackupFilename | 2 | 100.0% |
| phpMyFAQ\Setup\UpdateRunner::truncateString | 2 | 100.0% |
| phpMyFAQ\Setup\UpdateRunner::taskCleanup | 2 | 0.0% |
| phpMyFAQ\Setup\UpdateRunner::withProgress | 2 | 0.0% |
| phpMyFAQ\Setup\UpdateToken::getOrCreate | 2 | 100.0% |
| phpMyFAQ\Setup\UpdateToken::delete | 2 | 100.0% |
| phpMyFAQ\Setup\Upgrade::getDownloadHost | 2 | 100.0% |
| phpMyFAQ\Setup\Upgrade::getPath | 2 | 100.0% |
| phpMyFAQ\Sitemap::__construct | 2 | 100.0% |
| phpMyFAQ\Sitemap::normalizeIdList | 2 | 100.0% |
| phpMyFAQ\StopWords::add | 2 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::get | 2 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::size | 2 | 100.0% |
| phpMyFAQ\Storage\S3Storage::putStream | 2 | 100.0% |
| phpMyFAQ\Storage\S3Storage::get | 2 | 100.0% |
| phpMyFAQ\Storage\S3Storage::size | 2 | 100.0% |
| phpMyFAQ\Storage\S3Storage::run | 2 | 100.0% |
| phpMyFAQ\Storage\StorageFactory::readStringConfig | 2 | 100.0% |
| phpMyFAQ\Strings\Mbstring::appendU | 2 | 100.0% |
| phpMyFAQ\Strings\StringBasic::substr | 2 | 100.0% |
| phpMyFAQ\System::getVersion | 2 | 100.0% |
| phpMyFAQ\System::isUpdateNecessary | 2 | 100.0% |
| phpMyFAQ\System::isSqlite | 2 | 100.0% |
| phpMyFAQ\Tags::setBypassPermissionCheck | 2 | 0.0% |
| phpMyFAQ\Tags::getPopularTagsAsArray | 2 | 100.0% |
| phpMyFAQ\Tags::normalizePermissionGroups | 2 | 100.0% |
| phpMyFAQ\Template\ThemeManager::activateTheme | 2 | 100.0% |
| phpMyFAQ\Template\ThemeManager::activateDefaultTheme | 2 | 100.0% |
| phpMyFAQ\Template\ThemeManager::themeStoragePath | 2 | 100.0% |
| phpMyFAQ\Template\ThemeManager::assertValidThemeName | 2 | 100.0% |
| phpMyFAQ\Template\ThemeManager::assertAllowedFileExtension | 2 | 100.0% |
| phpMyFAQ\Translation::create | 2 | 100.0% |
| phpMyFAQ\Translation::getString | 2 | 100.0% |
| phpMyFAQ\Translation::getInstance | 2 | 100.0% |
| phpMyFAQ\Translation::checkTranslationsDirectory | 2 | 100.0% |
| phpMyFAQ\Translation::checkDefaultLanguage | 2 | 100.0% |
| phpMyFAQ\Translation::checkInit | 2 | 100.0% |
| phpMyFAQ\Translation::checkCurrentLanguage | 2 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationRequest::getContentType | 2 | 0.0% |
| phpMyFAQ\Translation\DTO\TranslationResult::getError | 2 | 0.0% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::doTranslateBatch | 2 | 100.0% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::supportsLanguagePair | 2 | 100.0% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::supportsLanguagePair | 2 | 100.0% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::getApiUrl | 2 | 100.0% |
| phpMyFAQ\Twig\Extensions\AssetVersionTwigExtension::asset | 2 | 0.0% |
| phpMyFAQ\Twig\Extensions\TranslateTwigExtension::translate | 2 | 100.0% |
| phpMyFAQ\User::userData | 2 | 100.0% |
| phpMyFAQ\User::getUserId | 2 | 100.0% |
| phpMyFAQ\User::error | 2 | 100.0% |
| phpMyFAQ\User::getUserVisibilityByEmail | 2 | 100.0% |
| phpMyFAQ\User::setStatus | 2 | 100.0% |
| phpMyFAQ\User::fetchRowArray | 2 | 100.0% |
| phpMyFAQ\User\CurrentUser::sessionAge | 2 | 100.0% |
| phpMyFAQ\User\Tracking::getInstance | 2 | 100.0% |
| phpMyFAQ\User\Tracking::initializeSessionId | 2 | 100.0% |
| phpMyFAQ\User\TwoFactor::saveSecret | 2 | 100.0% |
| phpMyFAQ\User\TwoFactor::getSecret | 2 | 100.0% |
| phpMyFAQ\User\UserAuthentication::recordFailedLogin | 2 | 100.0% |
| phpMyFAQ\User\UserAuthentication::failedLoginKey | 2 | 100.0% |
| phpMyFAQ\Utils::setHighlightedString | 2 | 100.0% |
| phpMyFAQ\Utils::moveToTop | 2 | 100.0% |
| phpMyFAQ\Utils::formatBytes | 2 | 100.0% |
| phpMyFAQ\Visits::logViews | 2 | 100.0% |
| phpMyFAQ\Visits::getRequestTimestamp | 2 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setLogger | 2 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::set | 2 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\OpenSearchController::statistics | 1.63 | 14.3% |
| phpMyFAQ\Auth\AuthEntraId::checkCredentials | 1.12 | 50.0% |
| phpMyFAQ\Administration\AdminLog::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\AdminLog::getNumberOfEntries | 1 | 100.0% |
| phpMyFAQ\Administration\AdminLog::getAll | 1 | 100.0% |
| phpMyFAQ\Administration\AdminLog::delete | 1 | 100.0% |
| phpMyFAQ\Administration\AdminLog::calculateHash | 1 | 100.0% |
| phpMyFAQ\Administration\AdminLogRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\AdminLogRepository::getNumberOfEntries | 1 | 100.0% |
| phpMyFAQ\Administration\AdminLogRepository::deleteOlderThan | 1 | 100.0% |
| phpMyFAQ\Administration\AdminMenuBuilder::searchRelevanceOptions | 1 | 100.0% |
| phpMyFAQ\Administration\Backup::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Backup::getBackupHeader | 1 | 100.0% |
| phpMyFAQ\Administration\Backup::export | 1 | 100.0% |
| phpMyFAQ\Administration\Backup::getRepository | 1 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupExecuteResult::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupExportResult::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupParseResult::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::getNumberOfEntries | 1 | 100.0% |
| phpMyFAQ\Administration\Backup\BackupRepository::deleteAll | 1 | 100.0% |
| phpMyFAQ\Administration\Category::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Category::getLanguage | 1 | 100.0% |
| phpMyFAQ\Administration\Category::setLanguage | 1 | 100.0% |
| phpMyFAQ\Administration\Category::getUser | 1 | 100.0% |
| phpMyFAQ\Administration\Category::setUser | 1 | 100.0% |
| phpMyFAQ\Administration\Category::getGroups | 1 | 100.0% |
| phpMyFAQ\Administration\Category::setGroups | 1 | 100.0% |
| phpMyFAQ\Administration\Changelog::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Changelog::add | 1 | 100.0% |
| phpMyFAQ\Administration\DashboardLayout::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\DashboardLayout::reset | 1 | 100.0% |
| phpMyFAQ\Administration\Faq::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Faq::setLanguage | 1 | 100.0% |
| phpMyFAQ\Administration\Faq::getLanguage | 1 | 100.0% |
| phpMyFAQ\Administration\Faq::buildBasicFaqAccessQuery | 1 | 100.0% |
| phpMyFAQ\Administration\Faq::sanitizeFaqIds | 1 | 100.0% |
| phpMyFAQ\Administration\FileDownloader::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\FileDownloader::getResponse | 1 | 100.0% |
| phpMyFAQ\Administration\FileDownloader::streamContent | 1 | 100.0% |
| phpMyFAQ\Administration\RatingStatistics::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\RatingStatistics::mapRowToRating | 1 | 100.0% |
| phpMyFAQ\Administration\RecentUsers::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\RemoteApiClient::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\RemoteApiClient::setHttpClient | 1 | 100.0% |
| phpMyFAQ\Administration\RemoteApiClient::setRemoteHashes | 1 | 100.0% |
| phpMyFAQ\Administration\Report::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\ReportRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Revision::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Revision::create | 1 | 100.0% |
| phpMyFAQ\Administration\Revision::delete | 1 | 100.0% |
| phpMyFAQ\Administration\Session::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\Session::getTimeFromSessionId | 1 | 100.0% |
| phpMyFAQ\Administration\Session::getNumberOfSessions | 1 | 100.0% |
| phpMyFAQ\Administration\Session::deleteSessions | 1 | 100.0% |
| phpMyFAQ\Administration\Session::deleteAllSessions | 1 | 100.0% |
| phpMyFAQ\Administration\Session::getLast30DaysVisits | 1 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::deleteSessionsByTimeRange | 1 | 100.0% |
| phpMyFAQ\Administration\SessionRepository::deleteAllSessions | 1 | 100.0% |
| phpMyFAQ\Administration\TranslationStatistics::getLanguageStatistics | 1 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::__construct | 1 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::has | 1 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::get | 1 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::getFilters | 1 | 100.0% |
| phpMyFAQ\Api\Filtering\FilterRequest::hasFilters | 1 | 100.0% |
| phpMyFAQ\Api\MetaService::__construct | 1 | 100.0% |
| phpMyFAQ\Api\MetaService::getPublicMetadata | 1 | 100.0% |
| phpMyFAQ\Api\MetaService::buildEnabledFeatures | 1 | 100.0% |
| phpMyFAQ\Api\MetaService::buildPublicLogoUrl | 1 | 100.0% |
| phpMyFAQ\Api\OAuthDiscoveryService::__construct | 1 | 100.0% |
| phpMyFAQ\Api\OAuthDiscoveryService::getDiscoveryDocument | 1 | 100.0% |
| phpMyFAQ\Api\Pagination\PaginationMetadata::toArray | 1 | 100.0% |
| phpMyFAQ\Api\Pagination\PaginationRequest::__construct | 1 | 100.0% |
| phpMyFAQ\Api\Pagination\PaginationRequest::validateLimit | 1 | 100.0% |
| phpMyFAQ\Api\ProblemDetails::__construct | 1 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::__construct | 1 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::getField | 1 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::getOrder | 1 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::getOrderSql | 1 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::hasSort | 1 | 100.0% |
| phpMyFAQ\Api\Sorting\SortRequest::escapeIdentifier | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::buildUrl | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::setKey | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::setRecordLang | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getId | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::setId | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getRecordId | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::setRecordId | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getTenantQuotaEnforcer | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getFilename | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getMimeType | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getFilesize | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::getRealHash | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::postUpdateMeta | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::readMimeType | 1 | 100.0% |
| phpMyFAQ\Attachment\AbstractAttachment::deleteMeta | 1 | 100.0% |
| phpMyFAQ\Attachment\AttachmentCollection::__construct | 1 | 100.0% |
| phpMyFAQ\Attachment\AttachmentService::__construct | 1 | 100.0% |
| phpMyFAQ\Attachment\AttachmentService::getAttachment | 1 | 100.0% |
| phpMyFAQ\Attachment\AttachmentService::getAttachmentErrorMessage | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractEntry::isEncrypted | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractEntry::getPath | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractEntry::__toString | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::eof | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::getMode | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::isOk | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::__construct | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\File\EncryptedFile::putChunk | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\File\VanillaFile::putChunk | 1 | 100.0% |
| phpMyFAQ\Auth::__construct | 1 | 100.0% |
| phpMyFAQ\Auth::getEncryptionContainer | 1 | 100.0% |
| phpMyFAQ\Auth::enableReadOnly | 1 | 100.0% |
| phpMyFAQ\Auth::disableReadOnly | 1 | 100.0% |
| phpMyFAQ\Auth::isReadOnly | 1 | 100.0% |
| phpMyFAQ\Auth\ApiKeyAuthenticator::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\ApiKeyAuthenticator::getAuthenticatedApiKey | 1 | 100.0% |
| phpMyFAQ\Auth\AuthChain::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\AuthChain::setOAuth2Authenticator | 1 | 100.0% |
| phpMyFAQ\Auth\AuthChain::getAuthenticatedUserId | 1 | 100.0% |
| phpMyFAQ\Auth\AuthChain::getAuthSource | 1 | 100.0% |
| phpMyFAQ\Auth\AuthDatabase::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\AuthDatabase::rehash | 1 | 100.0% |
| phpMyFAQ\Auth\AuthEntraId::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\AuthEntraId::update | 1 | 100.0% |
| phpMyFAQ\Auth\AuthEntraId::delete | 1 | 100.0% |
| phpMyFAQ\Auth\AuthEntraId::authorize | 1 | 100.0% |
| phpMyFAQ\Auth\AuthEntraId::logout | 1 | 100.0% |
| phpMyFAQ\Auth\AuthHttp::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\AuthHttp::create | 1 | 100.0% |
| phpMyFAQ\Auth\AuthHttp::update | 1 | 100.0% |
| phpMyFAQ\Auth\AuthHttp::delete | 1 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::update | 1 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::delete | 1 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::getEmail | 1 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::getSubject | 1 | 100.0% |
| phpMyFAQ\Auth\AuthKeycloak::toBool | 1 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::update | 1 | 100.0% |
| phpMyFAQ\Auth\AuthLdap::delete | 1 | 100.0% |
| phpMyFAQ\Auth\AuthSso::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\AuthSso::update | 1 | 100.0% |
| phpMyFAQ\Auth\AuthSso::delete | 1 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::storeUserInSession | 1 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::setAppId | 1 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::arrayToString | 1 | 100.0% |
| phpMyFAQ\Auth\AuthWebAuthn::stringToArray | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\EntraIdSession::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\EntraIdSession::createCurrentSessionKey | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\EntraIdSession::getCookie | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\JwksProvider::getKeys | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\JwksProvider::cacheFile | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::errorMessage | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::refreshToken | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::getToken | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::clearToken | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::getEntraIdSession | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::getRefreshToken | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::setRefreshToken | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::getAccessToken | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::setAccessToken | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::getName | 1 | 100.0% |
| phpMyFAQ\Auth\EntraId\OAuth::getMail | 1 | 100.0% |
| phpMyFAQ\Auth\Keycloak\KeycloakProviderConfigFactory::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::setTokenIssuer | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\AuthorizationServer::setAuthorizationCompleter | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Entity\ClientEntity::setName | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Entity\ClientEntity::setRedirectUri | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Entity\ClientEntity::setConfidential | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AbstractRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AbstractRepository::db | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AbstractRepository::table | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AccessTokenRepository::revokeAccessToken | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AuthCodeRepository::getNewAuthCode | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\AuthCodeRepository::revokeAuthCode | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\RefreshTokenRepository::getNewRefreshToken | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\RefreshTokenRepository::revokeRefreshToken | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\Repository\ScopeRepository::finalizeScopes | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\ResourceServer::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\OAuth2\ResourceServer::setTokenValidator | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcClient::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcClient::buildAuthorizationUrl | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcClient::fetchUserInfo | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcClientConfig::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcClientConfig::getScopesAsString | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcDiscoveryDocument::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcDiscoveryService::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::asn1Sequence | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::asn1ObjectIdentifier | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::asn1Null | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcIdTokenValidator::asn1BitString | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcProviderConfig::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcSession::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcSession::setAuthorizationState | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcSession::getAuthorizationState | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcSession::clearAuthorizationState | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcSession::setIdToken | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcSession::getIdToken | 1 | 100.0% |
| phpMyFAQ\Auth\Oidc\OidcSession::clearIdToken | 1 | 100.0% |
| phpMyFAQ\Auth\PasswordHasher::__construct | 1 | 100.0% |
| phpMyFAQ\Auth\PasswordHasher::hash | 1 | 100.0% |
| phpMyFAQ\Auth\PasswordHasher::isLegacyHash | 1 | 100.0% |
| phpMyFAQ\Auth\PasswordHasher::legacyHash | 1 | 100.0% |
| phpMyFAQ\Auth\WebAuthn\WebAuthnUser::getId | 1 | 100.0% |
| phpMyFAQ\Auth\WebAuthn\WebAuthnUser::setId | 1 | 100.0% |
| phpMyFAQ\Auth\WebAuthn\WebAuthnUser::getName | 1 | 100.0% |
| phpMyFAQ\Auth\WebAuthn\WebAuthnUser::setName | 1 | 100.0% |
| phpMyFAQ\Auth\WebAuthn\WebAuthnUser::getWebAuthnKeys | 1 | 100.0% |
| phpMyFAQ\Auth\WebAuthn\WebAuthnUser::setWebAuthnKeys | 1 | 100.0% |
| phpMyFAQ\Bookmark::__construct | 1 | 100.0% |
| phpMyFAQ\Bookmark\BookmarkFormatter::__construct | 1 | 100.0% |
| phpMyFAQ\Bookmark\BookmarkRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Bookmark\BookmarkRepository::removeAll | 1 | 100.0% |
| phpMyFAQ\Bootstrap\PhpConfigurator::configurePcre | 1 | 100.0% |
| phpMyFAQ\Bootstrap\PhpConfigurator::registerErrorHandlers | 1 | 100.0% |
| phpMyFAQ\Bootstrap\SearchClientFactory::configureOpenSearch | 1 | 100.0% |
| phpMyFAQ\Bootstrapper::config | 1 | 100.0% |
| phpMyFAQ\Bootstrapper::getFaqConfig | 1 | 100.0% |
| phpMyFAQ\Bootstrapper::getDb | 1 | 100.0% |
| phpMyFAQ\Bootstrapper::getRequest | 1 | 100.0% |
| phpMyFAQ\Cache\CacheFactory::__construct | 1 | 100.0% |
| phpMyFAQ\Cache\CacheFactory::createFilesystemAdapter | 1 | 100.0% |
| phpMyFAQ\Cache\CacheSettings::__construct | 1 | 100.0% |
| phpMyFAQ\Cache\CacheSettingsResolver::__construct | 1 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::__construct | 1 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::getFont | 1 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::isUserIsLoggedIn | 1 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::setUserIsLoggedIn | 1 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::renderCaptchaImage | 1 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::garbageCollector | 1 | 100.0% |
| phpMyFAQ\Captcha\BuiltinCaptcha::escapeQueryValue | 1 | 100.0% |
| phpMyFAQ\Captcha\GoogleRecaptcha::__construct | 1 | 100.0% |
| phpMyFAQ\Captcha\GoogleRecaptcha::fetchUrl | 1 | 100.0% |
| phpMyFAQ\Captcha\GoogleRecaptcha::isUserIsLoggedIn | 1 | 100.0% |
| phpMyFAQ\Captcha\GoogleRecaptcha::setUserIsLoggedIn | 1 | 100.0% |
| phpMyFAQ\Captcha\Helper\BuiltinCaptchaAbstractHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Captcha\Helper\GoogleRecaptchaAbstractHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Category::setLanguage | 1 | 100.0% |
| phpMyFAQ\Category::getUser | 1 | 100.0% |
| phpMyFAQ\Category::getGroups | 1 | 100.0% |
| phpMyFAQ\Category::getLevelOf | 1 | 100.0% |
| phpMyFAQ\Category::setUser | 1 | 100.0% |
| phpMyFAQ\Category::getAllCategoryIds | 1 | 100.0% |
| phpMyFAQ\Category::buildCategoryTree | 1 | 100.0% |
| phpMyFAQ\Category::buildAdminCategoryTree | 1 | 100.0% |
| phpMyFAQ\Category::getNodes | 1 | 100.0% |
| phpMyFAQ\Category::getChildren | 1 | 100.0% |
| phpMyFAQ\Category::getChildNodes | 1 | 100.0% |
| phpMyFAQ\Category::expand | 1 | 100.0% |
| phpMyFAQ\Category::getCategoryIdFromFaq | 1 | 100.0% |
| phpMyFAQ\Category::getCategoryIdFromName | 1 | 100.0% |
| phpMyFAQ\Category::create | 1 | 100.0% |
| phpMyFAQ\Category::checkIfCategoryExists | 1 | 100.0% |
| phpMyFAQ\Category::update | 1 | 100.0% |
| phpMyFAQ\Category::moveOwnership | 1 | 100.0% |
| phpMyFAQ\Category::hasLanguage | 1 | 100.0% |
| phpMyFAQ\Category::delete | 1 | 100.0% |
| phpMyFAQ\Category::getOwner | 1 | 100.0% |
| phpMyFAQ\Category::getModeratorGroupId | 1 | 100.0% |
| phpMyFAQ\Category::getCategoryTree | 1 | 100.0% |
| phpMyFAQ\Category::getCategoryName | 1 | 100.0% |
| phpMyFAQ\Category::getCategoryDescription | 1 | 100.0% |
| phpMyFAQ\Category::categoryHasLinkToFaq | 1 | 100.0% |
| phpMyFAQ\Category::getCategoryNames | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getCategories | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::setCategories | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::addCategory | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getCategoryNames | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::setCategoryNames | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::addCategoryName | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getCategoryName | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getTreeTab | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::setTreeTab | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::addTreeTabEntry | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getTreeTabEntry | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::countTreeTab | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getCatTree | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::setCatTree | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getChildren | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::setChildren | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::addChild | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::getChildrenOfParent | 1 | 100.0% |
| phpMyFAQ\Category\CategoryCache::clear | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::__construct | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::getUser | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::setUser | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::getGroups | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::setOwner | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::setModerator | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::getModeratorGroupId | 1 | 100.0% |
| phpMyFAQ\Category\CategoryPermissionContext::clear | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::mapRow | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::getTenantQuotaEnforcer | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::update | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::moveOwnership | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::hasLanguage | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::updateParentCategory | 1 | 100.0% |
| phpMyFAQ\Category\CategoryRepository::delete | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::__construct | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getAllCategories | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getAllCategoryIds | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getCategoriesFromFaq | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getCategoryIdFromFaq | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getCategoryIdsFromFaq | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getCategoryIdFromName | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getCategoryData | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::create | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::update | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::delete | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::moveOwnership | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::hasLanguage | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::checkIfCategoryExists | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getCategoryLanguagesTranslated | 1 | 100.0% |
| phpMyFAQ\Category\CategoryService::getMissingCategories | 1 | 100.0% |
| phpMyFAQ\Category\CategoryTreeFacade::__construct | 1 | 100.0% |
| phpMyFAQ\Category\CategoryTreeFacade::buildLinearTree | 1 | 100.0% |
| phpMyFAQ\Category\CategoryTreeFacade::buildAdminCategoryTree | 1 | 100.0% |
| phpMyFAQ\Category\CategoryTreeFacade::getChildren | 1 | 100.0% |
| phpMyFAQ\Category\CategoryTreeFacade::getChildNodes | 1 | 100.0% |
| phpMyFAQ\Category\CategoryTreeFacade::getLevelOf | 1 | 100.0% |
| phpMyFAQ\Category\CategoryTreeFacade::getNodes | 1 | 100.0% |
| phpMyFAQ\Category\Image::__construct | 1 | 100.0% |
| phpMyFAQ\Category\Image::setFileName | 1 | 100.0% |
| phpMyFAQ\Category\Image::getFileExtension | 1 | 100.0% |
| phpMyFAQ\Category\Image::isValidMimeType | 1 | 100.0% |
| phpMyFAQ\Category\Navigation\BreadcrumbsBuilder::buildFromIds | 1 | 100.0% |
| phpMyFAQ\Category\Navigation\BreadcrumbsBuilder::buildFromIdsWithStartPage | 1 | 100.0% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::__construct | 1 | 100.0% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::transform | 1 | 100.0% |
| phpMyFAQ\Category\Navigation\CategoryTreeNavigator::buildTree | 1 | 100.0% |
| phpMyFAQ\Category\Order::__construct | 1 | 100.0% |
| phpMyFAQ\Category\Order::add | 1 | 100.0% |
| phpMyFAQ\Category\Order::remove | 1 | 100.0% |
| phpMyFAQ\Category\Permission::__construct | 1 | 100.0% |
| phpMyFAQ\Category\Permission\CategoryPermissionService::buildWhereClause | 1 | 100.0% |
| phpMyFAQ\Category\Permission\CategoryPermissionService::buildWhereClauseWithInactive | 1 | 100.0% |
| phpMyFAQ\Category\Relation::__construct | 1 | 100.0% |
| phpMyFAQ\Category\Relation::setGroups | 1 | 100.0% |
| phpMyFAQ\Category\Startpage::__construct | 1 | 100.0% |
| phpMyFAQ\Category\Startpage::setUser | 1 | 100.0% |
| phpMyFAQ\Category\Startpage::setGroups | 1 | 100.0% |
| phpMyFAQ\Category\Startpage::setLanguage | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreeBuilder::__construct | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreeBuilder::getNodes | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreeBuilder::getChildren | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreeBuilder::getChildNodes | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreeBuilder::buildTree | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreeBuilder::computeLevel | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreePathResolver::getBrothers | 1 | 100.0% |
| phpMyFAQ\Category\Tree\TreeVisualizer::__construct | 1 | 100.0% |
| phpMyFAQ\Chat::__construct | 1 | 100.0% |
| phpMyFAQ\Chat::messageToArray | 1 | 100.0% |
| phpMyFAQ\Chat::mapRowToEntity | 1 | 100.0% |
| phpMyFAQ\Command\CreateHashesCommand::__construct | 1 | 100.0% |
| phpMyFAQ\Command\CreateHashesCommand::configure | 1 | 100.0% |
| phpMyFAQ\Command\InstallCommand::__construct | 1 | 100.0% |
| phpMyFAQ\Command\InstallCommand::configure | 1 | 100.0% |
| phpMyFAQ\Command\McpServerCommand::__construct | 1 | 100.0% |
| phpMyFAQ\Command\McpServerCommand::configure | 1 | 100.0% |
| phpMyFAQ\Command\SeedTestDataCommand::configure | 1 | 100.0% |
| phpMyFAQ\Command\SeedTestDataCommand::linkFaqToCategory | 1 | 100.0% |
| phpMyFAQ\Command\UpdateCommand::__construct | 1 | 100.0% |
| phpMyFAQ\Command\UpdateCommand::configure | 1 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Comment\CommentsRepository::deleteByTypeAndId | 1 | 100.0% |
| phpMyFAQ\Comments::__construct | 1 | 100.0% |
| phpMyFAQ\Comments::countComments | 1 | 100.0% |
| phpMyFAQ\Comments::create | 1 | 100.0% |
| phpMyFAQ\Comments::delete | 1 | 100.0% |
| phpMyFAQ\Configuration::getConfigurationInstance | 1 | 100.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::updateConfigValue | 1 | 100.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::fetchAll | 1 | 100.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::insert | 1 | 100.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::delete | 1 | 100.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::renameKey | 1 | 100.0% |
| phpMyFAQ\Configuration\ConfigurationRepository::updateFaqDataContentById | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getServer | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getPort | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getUser | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getPassword | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getDatabase | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getPrefix | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getType | 1 | 100.0% |
| phpMyFAQ\Configuration\DatabaseConfiguration::getSchema | 1 | 100.0% |
| phpMyFAQ\Configuration\ElasticsearchConfiguration::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\ElasticsearchConfiguration::getHosts | 1 | 100.0% |
| phpMyFAQ\Configuration\ElasticsearchConfiguration::getIndex | 1 | 100.0% |
| phpMyFAQ\Configuration\LayoutSettings::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\LayoutSettings::getTemplateSet | 1 | 100.0% |
| phpMyFAQ\Configuration\LayoutSettings::getCustomCss | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapConfiguration::getMainServer | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapConfiguration::getMainPort | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapConfiguration::getMainUser | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapConfiguration::getMainPassword | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapConfiguration::getMainBase | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapConfiguration::getServers | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapSettings::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapSettings::buildConfig | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapSettings::getLdapMapping | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapSettings::getLdapOptions | 1 | 100.0% |
| phpMyFAQ\Configuration\LdapSettings::isActive | 1 | 100.0% |
| phpMyFAQ\Configuration\MailSettings::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\OpenSearchConfiguration::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\OpenSearchConfiguration::getHosts | 1 | 100.0% |
| phpMyFAQ\Configuration\OpenSearchConfiguration::getIndex | 1 | 100.0% |
| phpMyFAQ\Configuration\SearchSettings::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\SearchSettings::isElasticsearchActive | 1 | 100.0% |
| phpMyFAQ\Configuration\SecuritySettings::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\SecuritySettings::isSignInWithMicrosoftActive | 1 | 100.0% |
| phpMyFAQ\Configuration\SecuritySettings::isSignInWithKeycloakActive | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\ConfigurationStorageSettings::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\ConfigurationStorageSettingsResolver::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::updateConfigValue | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::insert | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::delete | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\DatabaseConfigurationStore::renameKey | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\FilesystemConfigurationCache::clear | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\HybridConfigurationStore::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::__construct | 1 | 100.0% |
| phpMyFAQ\Configuration\Storage\RedisConfigurationStore::getHashKey | 1 | 100.0% |
| phpMyFAQ\Configuration\UrlSettings::__construct | 1 | 100.0% |
| phpMyFAQ\Container\ContainerCacheManager::containerClass | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::setContainer | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::render | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::json | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::isPublicAuthenticationPath | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::isApiEnabled | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::addExtension | 1 | 100.0% |
| phpMyFAQ\Controller\AbstractController::addFilter | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::render | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::userHasPermission | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\AbstractAdministrationController::getFooter | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\AdminLogController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\CategoryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\CategoryController::translations | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\CommentController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::faqsSortingKey | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::faqsSortingOrder | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::faqsSortingPopular | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::permLevel | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::releaseEnvironment | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::searchRelevance | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::seoMetaTags | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::translationProvider | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::mailProvider | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::layoutMode | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ConfigurationTabController::hasValidThemeCsrfToken | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::verify | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::searches | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::contentHealth | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\DashboardController::getLayout | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ElasticsearchController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\ExportController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::listPermissions | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\FaqController::listByCategory | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\GlossaryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\GlossaryController::fetch | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\GroupController::listCategories | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\InstanceController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\LdapController::configuration | 1.00 | 91.3% |
| phpMyFAQ\Controller\Administration\Api\NewsController::newsMessageFromPayload | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\OpenSearchController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\PageController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\PageController::list | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\QuestionController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\SessionController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\StatisticsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\TagController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\TranslationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UpdateController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UserController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\Api\UserController::userPermissions | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\AttachmentsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\AuthenticationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\BackupController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\BackupController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\CategoryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\CategoryController::add | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\CategoryController::translate | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\CommentsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\ConfigurationController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\DashboardController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\ExportController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\ExportController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\FaqController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\FaqController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\FaqController::getBaseTemplateVars | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\FormsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\FormsController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\GlossaryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\GlossaryController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\GroupController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\GroupController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\GroupController::add | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\GroupController::getBaseTemplateVars | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\ImportController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\InstanceController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\InstanceController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\InstanceController::edit | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\NewsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\NewsController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\NewsController::add | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\NewsController::getBaseTemplateVars | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\OpenQuestionsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\OrphanedFaqsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\OrphanedFaqsController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PageController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PageController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PageController::add | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PageController::getBaseTemplateVars | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PasswordChangeController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PasswordChangeController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PasswordChangeController::getBaseTemplateVars | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PluginController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\PluginController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\RatingController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\ReportController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\SessionKeepAliveController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\StatisticsSearchController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\StatisticsSessionsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\StickyFaqsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\StopWordsController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\SystemInformationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\TagController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\TagController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\UpdateController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\UserController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\UserController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\UserController::edit | 1 | 100.0% |
| phpMyFAQ\Controller\Administration\UserController::getBaseTemplateVars | 1 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::getPaginationRequest | 1 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::getSortRequest | 1 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::getFilterRequest | 1 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::apiResponse | 1 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::errorResponse | 1 | 100.0% |
| phpMyFAQ\Controller\Api\AbstractApiController::createResponseEtag | 1 | 100.0% |
| phpMyFAQ\Controller\Api\CategoryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\CategoryController::setCategoryFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Api\CategoryController::setCategoryPermissionFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Api\CategoryController::setOrderFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Api\CategoryController::list | 1 | 100.0% |
| phpMyFAQ\Controller\Api\CommentController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\FaqController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\FaqController::applyRequestLanguage | 1 | 100.0% |
| phpMyFAQ\Controller\Api\GlossaryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\LanguageController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Api\MetaController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Api\NewsController::list | 1 | 100.0% |
| phpMyFAQ\Controller\Api\OAuth2Controller::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\OAuth2Controller::setAuthorizationServer | 1 | 100.0% |
| phpMyFAQ\Controller\Api\OpenQuestionController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\PaginatedResponseOptions::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\PdfController::setFaqFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Api\PdfController::setServicesFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Api\QuestionController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\RegistrationController::setRegistrationHelperFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Api\SearchController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\TagController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Api\TitleController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Api\VersionController::index | 1 | 100.0% |
| phpMyFAQ\Controller\ContainerControllerResolver::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Exception\ForbiddenException::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\AccessibilityController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\AutoCompleteController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\CaptchaController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ChatController::getConversations | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ChatController::getUnreadCount | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ChatSseController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\CommentController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\ContactController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\FaqController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\PopularSearchesController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\PushController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\PushController::getVapidPublicKey | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\PushController::status | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\QuestionController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::isSecured | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::createUpdate | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\SetupController::getUpdateToken | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\TranslationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::json | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::sendResetLinkEmail | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::genericIssuanceResponse | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::clientIp | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\UserController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\VotingController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\Api\WebAuthnController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\AttachmentController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\AuthenticationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\AuthenticationController::forgotPassword | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\AzureAuthenticationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\AzureAuthenticationController::logout | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::show | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::initializeCategory | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::initializeFaq | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::createCategoryHelper | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::renderSpecificCategory | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CategoryController::prepareSubCategoryHelper | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\ChatController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\ContactController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CookiePolicyController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\CustomPageController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\ErrorController::renderBootstrapError | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\ErrorController::renderMinimalError | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\FaqController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\GlossaryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\ImprintController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::setCurrentUserFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\KeycloakAuthenticationController::setUserFactory | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\NewsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\OAuthDiscoveryController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\OverviewController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\OverviewController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\PageNotFoundController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\PageNotFoundController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\PdfController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\PrivacyController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\QuestionsController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\SearchController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\SearchController::tagsPaginated | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\SearchController::tags | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\SetupController::render | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\SitemapController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\StartpageController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\TermsController::index | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\UserController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\Frontend\WebAuthnController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\LlmsController::index | 1 | 100.0% |
| phpMyFAQ\Controller\RobotsController::index | 1 | 100.0% |
| phpMyFAQ\Controller\SitemapController::__construct | 1 | 100.0% |
| phpMyFAQ\Controller\SitemapController::sitemapGz | 1 | 100.0% |
| phpMyFAQ\Controller\SitemapController::sitemapXmlGz | 1 | 100.0% |
| phpMyFAQ\Core\Exception::__toString | 1 | 100.0% |
| phpMyFAQ\CustomPage::__construct | 1 | 100.0% |
| phpMyFAQ\CustomPage::countPages | 1 | 100.0% |
| phpMyFAQ\CustomPage::countAllLanguages | 1 | 100.0% |
| phpMyFAQ\CustomPage::getExistingLanguages | 1 | 100.0% |
| phpMyFAQ\CustomPage::create | 1 | 100.0% |
| phpMyFAQ\CustomPage::createTranslation | 1 | 100.0% |
| phpMyFAQ\CustomPage::delete | 1 | 100.0% |
| phpMyFAQ\CustomPage::activate | 1 | 100.0% |
| phpMyFAQ\CustomPage::slugExists | 1 | 100.0% |
| phpMyFAQ\CustomPage::mapRowToArray | 1 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::__construct | 1 | 100.0% |
| phpMyFAQ\CustomPage\CustomPageRepository::delete | 1 | 100.0% |
| phpMyFAQ\Database::getType | 1 | 100.0% |
| phpMyFAQ\Database::checkOnEmptyTable | 1 | 100.0% |
| phpMyFAQ\Database::setTablePrefix | 1 | 100.0% |
| phpMyFAQ\Database::getTablePrefix | 1 | 100.0% |
| phpMyFAQ\Database\DatabaseHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Database\DatabaseHelper::alignTablePrefix | 1 | 100.0% |
| phpMyFAQ\Database\Mysqli::connection | 1 | 100.0% |
| phpMyFAQ\Database\Mysqli::escape | 1 | 100.0% |
| phpMyFAQ\Database\Mysqli::log | 1 | 100.0% |
| phpMyFAQ\Database\Mysqli::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\Mysqli::__destruct | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::pdo | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::error | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::escape | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::log | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::affectedRows | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::prepare | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::execute | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::clientVersion | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::serverVersion | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::close | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::__destruct | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::lastInsertId | 1 | 100.0% |
| phpMyFAQ\Database\PdoMysql::now | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::pdo | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::error | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::escape | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::log | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::affectedRows | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::prepare | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::execute | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::clientVersion | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::serverVersion | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::close | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::__destruct | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::lastInsertId | 1 | 100.0% |
| phpMyFAQ\Database\PdoPgsql::now | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::pdo | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::__construct | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::error | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::escape | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::log | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::affectedRows | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::prepare | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::execute | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::clientVersion | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::serverVersion | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::close | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::__destruct | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::lastInsertId | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlite::now | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::pdo | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::log | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::affectedRows | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::prepare | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::execute | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::serverVersion | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::close | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::__destruct | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::lastInsertId | 1 | 100.0% |
| phpMyFAQ\Database\PdoSqlsrv::now | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::error | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::escape | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::fetchObject | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::fetchRow | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::numRows | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::log | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::nextId | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::clientVersion | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::serverVersion | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::close | 1 | 100.0% |
| phpMyFAQ\Database\Pgsql::now | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::connection | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::connect | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::escape | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::log | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::nextId | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::affectedRows | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::serverVersion | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::clientVersion | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::lastInsertId | 1 | 100.0% |
| phpMyFAQ\Database\Sqlite3::now | 1 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::escape | 1 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::fetchRow | 1 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::log | 1 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::getTableNames | 1 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::now | 1 | 100.0% |
| phpMyFAQ\Database\Sqlsrv::setConnectionOptions | 1 | 100.0% |
| phpMyFAQ\Date::__construct | 1 | 100.0% |
| phpMyFAQ\Encryption::__construct | 1 | 100.0% |
| phpMyFAQ\Encryption::setSalt | 1 | 100.0% |
| phpMyFAQ\EncryptionTypes\Bcrypt::encrypt | 1 | 100.0% |
| phpMyFAQ\EncryptionTypes\Hash::encrypt | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::getId | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::setId | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::getTime | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::setTime | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::getUserId | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::setUserId | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::getText | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::setText | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::getIp | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::setIp | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::getHash | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::setHash | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::getPreviousHash | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::setPreviousHash | 1 | 100.0% |
| phpMyFAQ\Entity\AdminLog::calculateHash | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getActive | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setActive | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getDescription | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setDescription | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getGroupId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setGroupId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getLang | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setLang | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getName | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setName | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getParentId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setParentId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getUserId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setUserId | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getImage | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setImage | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::getShowHome | 1 | 100.0% |
| phpMyFAQ\Entity\CategoryEntity::setShowHome | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::getId | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::setId | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::getSenderId | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::setSenderId | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::getRecipientId | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::setRecipientId | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::getMessage | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::setMessage | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::isRead | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::setIsRead | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::getCreatedAt | 1 | 100.0% |
| phpMyFAQ\Entity\ChatMessage::setCreatedAt | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getId | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setId | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getRecordId | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setRecordId | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getCategoryId | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setCategoryId | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getType | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setType | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getUsername | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setUsername | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getEmail | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setEmail | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getComment | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setComment | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::getDate | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setDate | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::hasHelped | 1 | 100.0% |
| phpMyFAQ\Entity\Comment::setHelped | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getId | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setId | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getPageTitle | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setPageTitle | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getSlug | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setSlug | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getContent | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setContent | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getAuthorName | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setAuthorName | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getAuthorEmail | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setAuthorEmail | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::isActive | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setActive | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getCreated | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setCreated | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getUpdated | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setUpdated | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getSeoTitle | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setSeoTitle | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getSeoDescription | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setSeoDescription | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::getSeoRobots | 1 | 100.0% |
| phpMyFAQ\Entity\CustomPageEntity::setSeoRobots | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getId | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setId | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getSolutionId | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setSolutionId | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getRevisionId | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setRevisionId | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::isActive | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setActive | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::isSticky | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setSticky | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getKeywords | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setKeywords | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getQuestion | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setQuestion | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getAnswer | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setAnswer | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getAuthor | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setAuthor | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getEmail | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setEmail | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::isComment | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setComment | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getNotes | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setNotes | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setValidFrom | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setValidTo | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setCreatedDate | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::getUpdatedDate | 1 | 100.0% |
| phpMyFAQ\Entity\FaqEntity::setUpdatedDate | 1 | 100.0% |
| phpMyFAQ\Entity\InstanceEntity::getUrl | 1 | 100.0% |
| phpMyFAQ\Entity\InstanceEntity::setUrl | 1 | 100.0% |
| phpMyFAQ\Entity\InstanceEntity::getInstance | 1 | 100.0% |
| phpMyFAQ\Entity\InstanceEntity::setInstance | 1 | 100.0% |
| phpMyFAQ\Entity\InstanceEntity::getComment | 1 | 100.0% |
| phpMyFAQ\Entity\InstanceEntity::setComment | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getId | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setId | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getHeader | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setHeader | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getMessage | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setMessage | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getCreated | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setCreated | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getAuthor | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setAuthor | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getEmail | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setEmail | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::isActive | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setActive | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::isComment | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setComment | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getDateStart | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setDateStart | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getDateEnd | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setDateEnd | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getLink | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setLink | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getLinkTitle | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setLinkTitle | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::getLinkTarget | 1 | 100.0% |
| phpMyFAQ\Entity\NewsMessage::setLinkTarget | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getId | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setId | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getUserId | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setUserId | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getEndpoint | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setEndpoint | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getEndpointHash | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setEndpointHash | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getPublicKey | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setPublicKey | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getAuthToken | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setAuthToken | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getContentEncoding | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setContentEncoding | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::getCreatedAt | 1 | 100.0% |
| phpMyFAQ\Entity\PushSubscriptionEntity::setCreatedAt | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getId | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setId | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getUsername | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setUsername | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getEmail | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setEmail | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getCategoryId | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setCategoryId | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getQuestion | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setQuestion | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getCreated | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setCreated | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::getAnswerId | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setAnswerId | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::isVisible | 1 | 100.0% |
| phpMyFAQ\Entity\QuestionEntity::setIsVisible | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getId | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setId | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getSeoType | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setSeoType | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getReferenceId | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setReferenceId | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getReferenceLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setReferenceLanguage | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getTitle | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setTitle | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getDescription | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setDescription | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getSlug | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setSlug | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::getCreated | 1 | 100.0% |
| phpMyFAQ\Entity\SeoEntity::setCreated | 1 | 100.0% |
| phpMyFAQ\Entity\Tag::getId | 1 | 100.0% |
| phpMyFAQ\Entity\Tag::setId | 1 | 100.0% |
| phpMyFAQ\Entity\Tag::getName | 1 | 100.0% |
| phpMyFAQ\Entity\Tag::setName | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::getId | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::setId | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::getFaqId | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::setFaqId | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::getVote | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::setVote | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::getUsers | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::setUsers | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::getCreatedAt | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::setCreatedAt | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::getIp | 1 | 100.0% |
| phpMyFAQ\Entity\Vote::setIp | 1 | 100.0% |
| phpMyFAQ\Environment::enableTestMode | 1 | 100.0% |
| phpMyFAQ\Environment::isDebugMode | 1 | 100.0% |
| phpMyFAQ\Environment::shouldLogQueries | 1 | 100.0% |
| phpMyFAQ\Environment::get | 1 | 100.0% |
| phpMyFAQ\Environment::getEnvironment | 1 | 100.0% |
| phpMyFAQ\Environment::isProduction | 1 | 100.0% |
| phpMyFAQ\Environment::isDevelopment | 1 | 100.0% |
| phpMyFAQ\EventListener\ApiExceptionListener::__construct | 1 | 100.0% |
| phpMyFAQ\EventListener\ApiRateLimiterListener::__construct | 1 | 100.0% |
| phpMyFAQ\EventListener\ControllerContainerListener::__construct | 1 | 100.0% |
| phpMyFAQ\EventListener\LanguageListener::__construct | 1 | 100.0% |
| phpMyFAQ\EventListener\LanguageListener::initializeTranslation | 1 | 100.0% |
| phpMyFAQ\EventListener\RouterListener::__construct | 1 | 100.0% |
| phpMyFAQ\EventListener\WebExceptionListener::__construct | 1 | 100.0% |
| phpMyFAQ\EventListener\WebExceptionListener::handleServerError | 1 | 100.0% |
| phpMyFAQ\EventListener\WebExceptionListener::formatExceptionMessage | 1 | 100.0% |
| phpMyFAQ\Export\Json::__construct | 1 | 100.0% |
| phpMyFAQ\Export\Pdf::__construct | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfDocument::setHeaderRenderer | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfDocument::setFooterRenderer | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::__construct | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::open | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::output | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::addPage | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setPrintHeader | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setDisplayMode | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::bookmark | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setMargins | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setFont | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setRtl | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::ln | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::writeHtml | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::writeHtmlCell | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::multiCell | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::cell | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setY | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::setTextColor | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::getLastH | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::addTocPage | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::addToc | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::endTocPage | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::getAliasNumPage | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::getAliasNbPages | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::onHeader | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Engine\TcpdfEngine::onFooter | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::config | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::Open | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::Output | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::AddPage | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setPrintHeader | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::SetDisplayMode | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::Bookmark | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setCategory | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setQuestion | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setCategories | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setConfig | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setCustomHeader | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setCustomFooter | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::addFaqToc | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::getCurrentFont | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::setFaq | 1 | 100.0% |
| phpMyFAQ\Export\Pdf\Wrapper::WriteHTML | 1 | 100.0% |
| phpMyFAQ\Faq::setUser | 1 | 100.0% |
| phpMyFAQ\Faq::setGroups | 1 | 100.0% |
| phpMyFAQ\Faq::isFaqRecordVisible | 1 | 100.0% |
| phpMyFAQ\Faq::getFaqResult | 1 | 100.0% |
| phpMyFAQ\Faq::getTenantQuotaEnforcer | 1 | 100.0% |
| phpMyFAQ\Faq::getNextSolutionId | 1 | 100.0% |
| phpMyFAQ\Faq::update | 1 | 100.0% |
| phpMyFAQ\Faq::getSolutionIdFromId | 1 | 100.0% |
| phpMyFAQ\Faq::hasTranslation | 1 | 100.0% |
| phpMyFAQ\Faq::isActive | 1 | 100.0% |
| phpMyFAQ\Faq::getIdFromSolutionId | 1 | 100.0% |
| phpMyFAQ\Faq::sortStickyArrayByOrder | 1 | 100.0% |
| phpMyFAQ\Faq::hasTitleAHash | 1 | 100.0% |
| phpMyFAQ\Faq\FaqCreationService::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::isExpired | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::getNumberOfComments | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::getCommentsData | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::getAvailableLanguages | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::getTagsHtml | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::getRating | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::getFaqHelper | 1 | 100.0% |
| phpMyFAQ\Faq\FaqDisplayService::processHighlight | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::hasTranslation | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::isFaqVisibleForUser | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchAvailableFaqsByCategoryId | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchStickyFaqs | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::fetchAllFaqs | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::queryRenderableFaqsByCategoryId | 1 | 100.0% |
| phpMyFAQ\Faq\FaqRepository::queryRenderableFaqsByIds | 1 | 100.0% |
| phpMyFAQ\Faq\Import::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\Import::isCSVFile | 1 | 100.0% |
| phpMyFAQ\Faq\MetaData::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\MetaData::setFaqId | 1 | 100.0% |
| phpMyFAQ\Faq\MetaData::setFaqLanguage | 1 | 100.0% |
| phpMyFAQ\Faq\MetaData::setCategories | 1 | 100.0% |
| phpMyFAQ\Faq\Permission::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\QueryHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\QueryHelper::groupGrantExists | 1 | 100.0% |
| phpMyFAQ\Faq\QuestionService::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\QuestionService::prepareAskQuestionData | 1 | 100.0% |
| phpMyFAQ\Faq\RecordVisibility::__construct | 1 | 100.0% |
| phpMyFAQ\Faq\RecordVisibility::isActivated | 1 | 100.0% |
| phpMyFAQ\Faq\Statistics::setUser | 1 | 100.0% |
| phpMyFAQ\Faq\Statistics::setGroups | 1 | 100.0% |
| phpMyFAQ\Filesystem\Filesystem::getRootPath | 1 | 100.0% |
| phpMyFAQ\Filesystem\Filesystem::getPath | 1 | 100.0% |
| phpMyFAQ\Filesystem\Filesystem::setPath | 1 | 100.0% |
| phpMyFAQ\Filesystem\Filesystem::moveDirectory | 1 | 100.0% |
| phpMyFAQ\Filter::filterInputArray | 1 | 100.0% |
| phpMyFAQ\Filter::filterArray | 1 | 100.0% |
| phpMyFAQ\Filter::filterSanitizeString | 1 | 100.0% |
| phpMyFAQ\Filter::removeAttributes | 1 | 100.0% |
| phpMyFAQ\Filter::sanitizerConfig | 1 | 100.0% |
| phpMyFAQ\Form\FormsFactory::create | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::updateInputActive | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::updateInputRequired | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::updateTranslation | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::deleteTranslation | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::insertTranslationRow | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::insertInput | 1 | 100.0% |
| phpMyFAQ\Form\FormsRepository::buildInsertQuery | 1 | 100.0% |
| phpMyFAQ\Forms::__construct | 1 | 100.0% |
| phpMyFAQ\Forms::getFormData | 1 | 100.0% |
| phpMyFAQ\Forms::editTranslation | 1 | 100.0% |
| phpMyFAQ\Forms::deleteTranslation | 1 | 100.0% |
| phpMyFAQ\Forms::insertInputIntoDatabase | 1 | 100.0% |
| phpMyFAQ\Forms::getInsertQueries | 1 | 100.0% |
| phpMyFAQ\Forms::saveActivateInputStatus | 1 | 100.0% |
| phpMyFAQ\Forms::saveRequiredInputStatus | 1 | 100.0% |
| phpMyFAQ\Glossary::__construct | 1 | 100.0% |
| phpMyFAQ\Glossary::fetch | 1 | 100.0% |
| phpMyFAQ\Glossary::setLanguage | 1 | 100.0% |
| phpMyFAQ\Glossary\GlossaryHelper::formatTooltip | 1 | 100.0% |
| phpMyFAQ\Glossary\GlossaryRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::setCategory | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::getCategory | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::category | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::plurals | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::setCategoryRelation | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::setTags | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::setPlurals | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::setSessionId | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::setConfiguration | 1 | 100.0% |
| phpMyFAQ\Helper\AbstractHelper::getConfiguration | 1 | 100.0% |
| phpMyFAQ\Helper\CategoryHelper::gatherCategoryData | 1 | 100.0% |
| phpMyFAQ\Helper\FaqHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Helper\FaqHelper::rewriteUrlFragments | 1 | 100.0% |
| phpMyFAQ\Helper\FaqHelper::createFaqUrl | 1 | 100.0% |
| phpMyFAQ\Helper\MailHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Helper\RegistrationHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Helper\SearchHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Helper\SearchHelper::setSearchTerm | 1 | 100.0% |
| phpMyFAQ\Helper\StatisticsHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Helper\SvgSanitizer::shouldReject | 1 | 100.0% |
| phpMyFAQ\Helper\TagsHelper::getTaggingIds | 1 | 100.0% |
| phpMyFAQ\Helper\TagsHelper::setTaggingIds | 1 | 100.0% |
| phpMyFAQ\Helper\TagsHelper::renderRelatedTag | 1 | 100.0% |
| phpMyFAQ\Helper\UserHelper::__construct | 1 | 100.0% |
| phpMyFAQ\Http\RateLimiter::peek | 1 | 100.0% |
| phpMyFAQ\Http\RateLimiter::getHeaders | 1 | 100.0% |
| phpMyFAQ\Instance::__construct | 1 | 100.0% |
| phpMyFAQ\Instance::getId | 1 | 100.0% |
| phpMyFAQ\Instance::setId | 1 | 100.0% |
| phpMyFAQ\Instance::getAll | 1 | 100.0% |
| phpMyFAQ\Instance::update | 1 | 100.0% |
| phpMyFAQ\Instance::addConfig | 1 | 100.0% |
| phpMyFAQ\Instance\Client::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Client::setClientUrl | 1 | 100.0% |
| phpMyFAQ\Instance\Client::setFileSystem | 1 | 100.0% |
| phpMyFAQ\Instance\Client::filesystem | 1 | 100.0% |
| phpMyFAQ\Instance\Client::insertSeedRows | 1 | 100.0% |
| phpMyFAQ\Instance\Client::copyConstantsFile | 1 | 100.0% |
| phpMyFAQ\Instance\Client::isValidClientUrl | 1 | 100.0% |
| phpMyFAQ\Instance\Client::buildClientFolderPath | 1 | 100.0% |
| phpMyFAQ\Instance\Database::getInstance | 1 | 100.0% |
| phpMyFAQ\Instance\Database\Mysqli::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\PdoMysql::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\PdoPgsql::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\PdoSqlite::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\PdoSqlsrv::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\Pgsql::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\Sqlite3::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\Sqlsrv::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Database\Stopwords::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Main::createMain | 1 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::getParams | 1 | 100.0% |
| phpMyFAQ\Instance\Search\Elasticsearch::buildMappings | 1 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::getParams | 1 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::getMapping | 1 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::dropIndex | 1 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::index | 1 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::update | 1 | 100.0% |
| phpMyFAQ\Instance\Search\OpenSearch::delete | 1 | 100.0% |
| phpMyFAQ\Instance\Setup::__construct | 1 | 100.0% |
| phpMyFAQ\Instance\Setup::setRootDir | 1 | 100.0% |
| phpMyFAQ\Instance\Setup::escapeForSingleQuotedPhpString | 1 | 100.0% |
| phpMyFAQ\Instance\Setup::createLdapFile | 1 | 100.0% |
| phpMyFAQ\Kernel::__construct | 1 | 100.0% |
| phpMyFAQ\Kernel::getRoutingContext | 1 | 100.0% |
| phpMyFAQ\Kernel::isDebug | 1 | 100.0% |
| phpMyFAQ\Kernel::buildContainer | 1 | 100.0% |
| phpMyFAQ\Language::__construct | 1 | 100.0% |
| phpMyFAQ\Language::setLanguageWithDetection | 1 | 100.0% |
| phpMyFAQ\Language::setLanguageFromConfiguration | 1 | 100.0% |
| phpMyFAQ\Language::setLanguageByAcceptLanguage | 1 | 100.0% |
| phpMyFAQ\Language\LanguageCodes::getAll | 1 | 100.0% |
| phpMyFAQ\Language\LanguageCodes::getAllSorted | 1 | 100.0% |
| phpMyFAQ\Language\LanguageCodes::get | 1 | 100.0% |
| phpMyFAQ\Language\LanguageCodes::getKey | 1 | 100.0% |
| phpMyFAQ\Language\LanguageCodes::getAllSupported | 1 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::__construct | 1 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::detectAllWithBrowser | 1 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::detectAllFromConfig | 1 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::aggregateWithBrowser | 1 | 100.0% |
| phpMyFAQ\Language\LanguageDetector::aggregateWithoutBrowser | 1 | 100.0% |
| phpMyFAQ\Language\Plurals::get | 1 | 100.0% |
| phpMyFAQ\Ldap::__construct | 1 | 100.0% |
| phpMyFAQ\Ldap::getMail | 1 | 100.0% |
| phpMyFAQ\Ldap::quote | 1 | 100.0% |
| phpMyFAQ\Ldap::getDn | 1 | 100.0% |
| phpMyFAQ\Ldap::getCompleteName | 1 | 100.0% |
| phpMyFAQ\Link::setRelation | 1 | 100.0% |
| phpMyFAQ\Link::getSystemUri | 1 | 100.0% |
| phpMyFAQ\Link::escapeAttr | 1 | 100.0% |
| phpMyFAQ\Link::escapeUrl | 1 | 100.0% |
| phpMyFAQ\Link::getHttpGetParameters | 1 | 100.0% |
| phpMyFAQ\Link::setTitle | 1 | 100.0% |
| phpMyFAQ\Link::getStrategyRegistry | 1 | 100.0% |
| phpMyFAQ\Link::registerStrategy | 1 | 100.0% |
| phpMyFAQ\Link\Strategy\GenericPathStrategy::__construct | 1 | 100.0% |
| phpMyFAQ\Link\Strategy\GenericPathStrategy::build | 1 | 100.0% |
| phpMyFAQ\Link\Strategy\SitemapStrategy::build | 1 | 100.0% |
| phpMyFAQ\Link\Strategy\StrategyRegistry::register | 1 | 100.0% |
| phpMyFAQ\Link\Strategy\StrategyRegistry::has | 1 | 100.0% |
| phpMyFAQ\Link\Strategy\StrategyRegistry::get | 1 | 100.0% |
| phpMyFAQ\Link\Util\TitleSlugifier::slug | 1 | 100.0% |
| phpMyFAQ\Mail::createBoundary | 1 | 100.0% |
| phpMyFAQ\Mail::setFrom | 1 | 100.0% |
| phpMyFAQ\Mail::addCc | 1 | 100.0% |
| phpMyFAQ\Mail::addTo | 1 | 100.0% |
| phpMyFAQ\Mail::getDate | 1 | 100.0% |
| phpMyFAQ\Mail::getTime | 1 | 100.0% |
| phpMyFAQ\Mail::fixEOL | 1 | 100.0% |
| phpMyFAQ\Mail::setReplyTo | 1 | 100.0% |
| phpMyFAQ\Mail\Builtin::stripNewlines | 1 | 100.0% |
| phpMyFAQ\Mail\Provider\MailgunProvider::__construct | 1 | 100.0% |
| phpMyFAQ\Mail\Provider\SendGridProvider::__construct | 1 | 100.0% |
| phpMyFAQ\Mail\Provider\SesProvider::__construct | 1 | 100.0% |
| phpMyFAQ\Network::__construct | 1 | 100.0% |
| phpMyFAQ\Network::isBanned | 1 | 100.0% |
| phpMyFAQ\News::__construct | 1 | 100.0% |
| phpMyFAQ\News::countLatestData | 1 | 100.0% |
| phpMyFAQ\News::create | 1 | 100.0% |
| phpMyFAQ\News::update | 1 | 100.0% |
| phpMyFAQ\News::delete | 1 | 100.0% |
| phpMyFAQ\News::activate | 1 | 100.0% |
| phpMyFAQ\News::deactivate | 1 | 100.0% |
| phpMyFAQ\News\NewsRepository::__construct | 1 | 100.0% |
| phpMyFAQ\News\NewsRepository::delete | 1 | 100.0% |
| phpMyFAQ\News\NewsService::__construct | 1 | 100.0% |
| phpMyFAQ\News\NewsService::processContent | 1 | 100.0% |
| phpMyFAQ\News\NewsService::buildInformationLink | 1 | 100.0% |
| phpMyFAQ\Notification::__construct | 1 | 100.0% |
| phpMyFAQ\Notification::createCategory | 1 | 100.0% |
| phpMyFAQ\Notification::createUser | 1 | 100.0% |
| phpMyFAQ\Pagination::__construct | 1 | 100.0% |
| phpMyFAQ\Pagination::render | 1 | 100.0% |
| phpMyFAQ\Pagination::renderLink | 1 | 100.0% |
| phpMyFAQ\Pagination::renderLayout | 1 | 100.0% |
| phpMyFAQ\Pagination\PaginationTemplates::__construct | 1 | 100.0% |
| phpMyFAQ\Pagination\PaginationTemplates::default | 1 | 100.0% |
| phpMyFAQ\Pagination\UrlConfig::__construct | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::__construct | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::getRightData | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::getRightId | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::checkUserRight | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::getAllUserRights | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::getUserRights | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::getAllRightsData | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermission::refuseAllUserRights | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::grantUserRight | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::addRight | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::renameRight | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::refuseAllUserRights | 1 | 100.0% |
| phpMyFAQ\Permission\BasicPermissionRepository::nextRightId | 1 | 100.0% |
| phpMyFAQ\Permission\GroupCategoryPermissionRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::__construct | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getGroupRights | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::checkUserGroupRight | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getGroupId | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::changeGroup | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getGroupMembers | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getUserGroups | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getGroupName | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getUserGroupRights | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getGroupData | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::removeFromAllGroups | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::refuseAllGroupRights | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::removeAllUsersFromGroup | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getCategoryRestrictions | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::getAllCategoryRestrictions | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermission::setCategoryRestrictions | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::addGroup | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::deleteGroupMemberships | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::deleteGroupRights | 1 | 100.0% |
| phpMyFAQ\Permission\MediumPermissionRepository::nextGroupId | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginDiscovery::__construct | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginDiscovery::normalizedPluginDir | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginEvent::__construct | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginEvent::getData | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginEvent::setOutput | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginEvent::getOutput | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::__construct | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::triggerEvent | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::loadPluginConfig | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getPluginConfig | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getPlugins | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::isCompatible | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getPluginDirectory | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getPluginStylesheets | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getPluginScripts | 1 | 100.0% |
| phpMyFAQ\Plugin\PluginManager::getIncompatiblePlugins | 1 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::deleteByEndpointHash | 1 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::deleteByEndpointHashAndUserId | 1 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::deleteByUserId | 1 | 100.0% |
| phpMyFAQ\Push\PushSubscriptionRepository::deleteByEndpoint | 1 | 100.0% |
| phpMyFAQ\Push\WebPushService::__construct | 1 | 100.0% |
| phpMyFAQ\Push\WebPushService::getVapidPublicKey | 1 | 100.0% |
| phpMyFAQ\Push\WebPushService::generateVapidKeys | 1 | 100.0% |
| phpMyFAQ\Question::__construct | 1 | 100.0% |
| phpMyFAQ\Question::add | 1 | 100.0% |
| phpMyFAQ\Question::delete | 1 | 100.0% |
| phpMyFAQ\Question::get | 1 | 100.0% |
| phpMyFAQ\Question::getVisibility | 1 | 100.0% |
| phpMyFAQ\Question::setVisibility | 1 | 100.0% |
| phpMyFAQ\Question\QuestionRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Question\QuestionRepository::delete | 1 | 100.0% |
| phpMyFAQ\Question\QuestionRepository::setVisibility | 1 | 100.0% |
| phpMyFAQ\Question\QuestionRepository::updateQuestionAnswer | 1 | 100.0% |
| phpMyFAQ\Queue\DatabaseMessageBus::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Handler\ExportHandler::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Handler\IndexFaqHandler::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Handler\SendMailHandler::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Message\ExportMessage::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Message\ExportMessage::toArray | 1 | 100.0% |
| phpMyFAQ\Queue\Message\IndexFaqMessage::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Message\IndexFaqMessage::toArray | 1 | 100.0% |
| phpMyFAQ\Queue\Message\IndexFaqMessage::fromArray | 1 | 100.0% |
| phpMyFAQ\Queue\Message\SendMailMessage::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Message\SendMailMessage::toArray | 1 | 100.0% |
| phpMyFAQ\Queue\MessageBusFactory::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Transport\DatabaseTransport::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Transport\DatabaseTransport::acknowledge | 1 | 100.0% |
| phpMyFAQ\Queue\Worker::__construct | 1 | 100.0% |
| phpMyFAQ\Queue\Worker::registerHandler | 1 | 100.0% |
| phpMyFAQ\Rating::__construct | 1 | 100.0% |
| phpMyFAQ\Rating::check | 1 | 100.0% |
| phpMyFAQ\Rating::getNumberOfVotings | 1 | 100.0% |
| phpMyFAQ\Rating::create | 1 | 100.0% |
| phpMyFAQ\Rating::update | 1 | 100.0% |
| phpMyFAQ\Rating::deleteAll | 1 | 100.0% |
| phpMyFAQ\Relation::__construct | 1 | 100.0% |
| phpMyFAQ\Relation::getAllRelatedByQuestion | 1 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::hasCache | 1 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::getCacheFile | 1 | 100.0% |
| phpMyFAQ\Routing\RouteCacheManager::generateRouteCode | 1 | 100.0% |
| phpMyFAQ\Routing\RouteCollectionBuilder::__construct | 1 | 100.0% |
| phpMyFAQ\Routing\RouteCollectionBuilder::build | 1 | 100.0% |
| phpMyFAQ\Scheduler\TaskScheduler::__construct | 1 | 100.0% |
| phpMyFAQ\Search::__construct | 1 | 100.0% |
| phpMyFAQ\Search::setCategoryId | 1 | 100.0% |
| phpMyFAQ\Search::getCategoryId | 1 | 100.0% |
| phpMyFAQ\Search::getDatabaseDriverClassName | 1 | 100.0% |
| phpMyFAQ\Search::deleteSearchTermById | 1 | 100.0% |
| phpMyFAQ\Search::deleteAllSearchTerms | 1 | 100.0% |
| phpMyFAQ\Search::setCategory | 1 | 100.0% |
| phpMyFAQ\Search::getCategory | 1 | 100.0% |
| phpMyFAQ\Search\AbstractSearch::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Database\Mysqli::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Database\Mysqli::setRelevanceRanking | 1 | 100.0% |
| phpMyFAQ\Search\Database\PdoMysql::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Database\PdoMysql::setRelevanceRanking | 1 | 100.0% |
| phpMyFAQ\Search\Database\PdoPgsql::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Database\Pgsql::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Rating\RatingRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Rating\RatingRepository::isVoteAllowed | 1 | 100.0% |
| phpMyFAQ\Search\Rating\RatingRepository::create | 1 | 100.0% |
| phpMyFAQ\Search\Rating\RatingRepository::update | 1 | 100.0% |
| phpMyFAQ\Search\Rating\RatingRepository::deleteAll | 1 | 100.0% |
| phpMyFAQ\Search\Search\Elasticsearch::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Search\Elasticsearch::search | 1 | 100.0% |
| phpMyFAQ\Search\Search\Elasticsearch::getCategoryIds | 1 | 100.0% |
| phpMyFAQ\Search\Search\Elasticsearch::setCategoryIds | 1 | 100.0% |
| phpMyFAQ\Search\Search\Elasticsearch::autoComplete | 1 | 100.0% |
| phpMyFAQ\Search\Search\Elasticsearch::getLanguage | 1 | 100.0% |
| phpMyFAQ\Search\Search\Elasticsearch::setLanguage | 1 | 100.0% |
| phpMyFAQ\Search\Search\OpenSearch::__construct | 1 | 100.0% |
| phpMyFAQ\Search\Search\OpenSearch::search | 1 | 100.0% |
| phpMyFAQ\Search\Search\OpenSearch::getCategoryIds | 1 | 100.0% |
| phpMyFAQ\Search\Search\OpenSearch::setCategoryIds | 1 | 100.0% |
| phpMyFAQ\Search\Search\OpenSearch::autoComplete | 1 | 100.0% |
| phpMyFAQ\Search\Search\OpenSearch::getLanguage | 1 | 100.0% |
| phpMyFAQ\Search\Search\OpenSearch::setLanguage | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::search | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::getResultColumns | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::setResultColumns | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::getTable | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::setTable | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::setJoinedTable | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::setJoinedColumns | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::getMatchingColumns | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::setMatchingColumns | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::setConditions | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::disableRelevance | 1 | 100.0% |
| phpMyFAQ\Search\SearchDatabase::escapeLikeWildcards | 1 | 100.0% |
| phpMyFAQ\Search\SearchResultSet::__construct | 1 | 100.0% |
| phpMyFAQ\Search\SearchResultSet::setResultSet | 1 | 100.0% |
| phpMyFAQ\Search\SearchResultSet::getResultSet | 1 | 100.0% |
| phpMyFAQ\Search\SearchResultSet::getNumberOfResults | 1 | 100.0% |
| phpMyFAQ\Search\SearchResultSet::setNumberOfResults | 1 | 100.0% |
| phpMyFAQ\Search\SearchService::__construct | 1 | 100.0% |
| phpMyFAQ\Search\SearchService::renderTagList | 1 | 100.0% |
| phpMyFAQ\Search\SearchService::getSolutionIdRedirectUrl | 1 | 100.0% |
| phpMyFAQ\Seo::__construct | 1 | 100.0% |
| phpMyFAQ\Seo::create | 1 | 100.0% |
| phpMyFAQ\Seo::get | 1 | 100.0% |
| phpMyFAQ\Seo::update | 1 | 100.0% |
| phpMyFAQ\Seo::delete | 1 | 100.0% |
| phpMyFAQ\Seo\SeoRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Seo\SeoRepository::create | 1 | 100.0% |
| phpMyFAQ\Seo\SeoRepository::update | 1 | 100.0% |
| phpMyFAQ\Seo\SeoRepository::delete | 1 | 100.0% |
| phpMyFAQ\Seo\SitemapXmlService::__construct | 1 | 100.0% |
| phpMyFAQ\Seo\SitemapXmlService::isEnabled | 1 | 100.0% |
| phpMyFAQ\Service\Gravatar::getUrl | 1 | 100.0% |
| phpMyFAQ\Service\Gravatar::getHash | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::__construct | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::getDefinition | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::getSearch | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::getFaq | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::buildFaqUrl | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\FaqSearchTool::createResult | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\McpSdkRuntime::__construct | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\McpSdkRuntime::getServerInfo | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\McpToolDefinition::__construct | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\PhpMyFaqMcpServer::runConsole | 1 | 100.0% |
| phpMyFAQ\Service\McpServer\PhpMyFaqMcpServer::getServerInfo | 1 | 100.0% |
| phpMyFAQ\Services::__construct | 1 | 100.0% |
| phpMyFAQ\Services::getCategoryId | 1 | 100.0% |
| phpMyFAQ\Services::setCategoryId | 1 | 100.0% |
| phpMyFAQ\Services::getFaqId | 1 | 100.0% |
| phpMyFAQ\Services::setFaqId | 1 | 100.0% |
| phpMyFAQ\Services::getLanguage | 1 | 100.0% |
| phpMyFAQ\Services::setLanguage | 1 | 100.0% |
| phpMyFAQ\Services::getQuestion | 1 | 100.0% |
| phpMyFAQ\Services::setQuestion | 1 | 100.0% |
| phpMyFAQ\Services::getPdfLink | 1 | 100.0% |
| phpMyFAQ\Services::getPdfApiLink | 1 | 100.0% |
| phpMyFAQ\Session\AbstractSession::__construct | 1 | 100.0% |
| phpMyFAQ\Session\AbstractSession::get | 1 | 100.0% |
| phpMyFAQ\Session\AbstractSession::set | 1 | 100.0% |
| phpMyFAQ\Session\SessionWrapper::get | 1 | 100.0% |
| phpMyFAQ\Session\SessionWrapper::set | 1 | 100.0% |
| phpMyFAQ\Session\SessionWrapper::has | 1 | 100.0% |
| phpMyFAQ\Session\SessionWrapper::remove | 1 | 100.0% |
| phpMyFAQ\Session\Token::__construct | 1 | 100.0% |
| phpMyFAQ\Session\Token::__serialize | 1 | 100.0% |
| phpMyFAQ\Session\Token::getPage | 1 | 100.0% |
| phpMyFAQ\Session\Token::setPage | 1 | 100.0% |
| phpMyFAQ\Session\Token::getExpiry | 1 | 100.0% |
| phpMyFAQ\Session\Token::setExpiry | 1 | 100.0% |
| phpMyFAQ\Session\Token::getSessionToken | 1 | 100.0% |
| phpMyFAQ\Session\Token::setSessionToken | 1 | 100.0% |
| phpMyFAQ\Session\Token::getCookieToken | 1 | 100.0% |
| phpMyFAQ\Session\Token::setCookieToken | 1 | 100.0% |
| phpMyFAQ\Session\Token::getTokenInput | 1 | 100.0% |
| phpMyFAQ\Session\Token::getTokenString | 1 | 100.0% |
| phpMyFAQ\Session\Token::removeToken | 1 | 100.0% |
| phpMyFAQ\Session\Token::getCookie | 1 | 100.0% |
| phpMyFAQ\Session\Token::setSession | 1 | 100.0% |
| phpMyFAQ\Session\Token::getCookieName | 1 | 100.0% |
| phpMyFAQ\Session\Token::resetInstanceForTests | 1 | 100.0% |
| phpMyFAQ\Setup\AbstractSetup::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\AbstractSetup::checkMinimumPhpVersion | 1 | 100.0% |
| phpMyFAQ\Setup\AbstractSetup::checkMinimumUpdateVersion | 1 | 100.0% |
| phpMyFAQ\Setup\AbstractSetup::checkMaintenanceMode | 1 | 100.0% |
| phpMyFAQ\Setup\EnvironmentConfigurator::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\EnvironmentConfigurator::getHtaccessPath | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::getAllTables | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::getTableNames | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::adminLog | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::attachment | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::attachmentFile | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::backup | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqbookmarks | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcaptcha | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcategories | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcategoryNews | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcategoryrelations | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcategoryGroup | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcategoryUser | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcategoryOrder | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqchanges | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcomments | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqconfig | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqdata | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqdataRevisions | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqdataGroup | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqdataTags | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqdataUser | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqforms | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqglossary | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqgroup | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqgroupRight | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqgroupRightCategory | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqinstances | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqinstancesConfig | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqapiKeys | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqoauthClients | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqoauthScopes | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqoauthAccessTokens | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqoauthRefreshTokens | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqoauthAuthCodes | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqnews | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqcustompages | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqjobs | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqquestions | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqright | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqsearches | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqseo | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqsessions | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqstopwords | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqtags | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faquser | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faquserdata | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faquserlogin | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faquserGroup | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faquserRight | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqvisits | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqvoting | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqchatMessages | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqpushSubscriptions | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DatabaseSchema::faqadmindashboard | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::getMainConfig | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::applyPersonalSettings | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::getMainRights | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::getFormInputs | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::buildDefaultRights | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\DefaultDataSeeder::buildDefaultFormInputs | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\SchemaInstaller::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Installation\SchemaInstaller::getSchema | 1 | 100.0% |
| phpMyFAQ\Setup\InstallationInput::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\InstallationInput::getLoginName | 1 | 100.0% |
| phpMyFAQ\Setup\InstallationInput::getPassword | 1 | 100.0% |
| phpMyFAQ\Setup\InstallationInputValidator::isElasticsearchEnabled | 1 | 100.0% |
| phpMyFAQ\Setup\InstallationInputValidator::isOpenSearchEnabled | 1 | 100.0% |
| phpMyFAQ\Setup\InstallationRunner::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Installer::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Installer::checkMinimumPhpVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Installer::hasLdapSupport | 1 | 100.0% |
| phpMyFAQ\Setup\Installer::getFormInputs | 1 | 100.0% |
| phpMyFAQ\Setup\Installer::isAlreadyInstalled | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::isReversible | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::down | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::table | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::isDbType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::isMySql | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::isPostgreSql | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::isSqlite | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::isSqlServer | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::dropColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::dropColumns | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::dropTable | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::dropTableIfExists | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::updateLanguageCode | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\AbstractMigration::getChecksum | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::setDryRun | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::isDryRun | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::getResults | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationExecutor::clearResults | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::register | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::registerDefaultMigrations | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::getMigration | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::getVersions | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationRegistry::hasMigration | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::isSuccess | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::setSuccess | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getErrorMessage | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::setErrorMessage | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getExecutionTimeMs | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::setExecutionTimeMs | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::isDryRun | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::setDryRun | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getOperationResults | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getSuccessCount | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getFailureCount | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::getOperationCount | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationResult::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::removeMigration | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\MigrationTracker::getAppliedVersions | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::getKey | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::getValue | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::execute | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigAddOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigDeleteOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigDeleteOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigDeleteOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigDeleteOperation::getKey | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigDeleteOperation::execute | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigDeleteOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigRenameOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigRenameOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigRenameOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigRenameOperation::getOldKey | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigRenameOperation::getNewKey | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigRenameOperation::execute | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigRenameOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::getKey | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::getValue | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\ConfigUpdateOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::getSource | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::getDestination | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\DirectoryCopyOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::getSource | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::getDestination | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FileCopyOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FormInputInsertOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FormInputInsertOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FormInputInsertOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\FormInputInsertOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::addSql | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::addConfig | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::deleteConfig | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::renameConfig | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::updateConfig | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::copyFile | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::copyDirectory | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::grantPermission | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::addOperation | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::getOperations | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::getOperationsByType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::clear | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\OperationRecorder::count | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::getPermissionName | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::getPermissionDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::getUserId | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\PermissionGrantOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\SqlOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\SqlOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\SqlOperation::getQuery | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\SqlOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\UserCreateOperation::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\UserCreateOperation::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\UserCreateOperation::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Operations\UserCreateOperation::toArray | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::addText | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::modifyColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::dropColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\AlterTableBuilder::addColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::integer | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::bigInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::smallInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::varchar | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::text | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::longText | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::blob | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::boolean | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::timestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::date | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::char | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::currentTimestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::currentDate | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::autoIncrement | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::createTableSuffix | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::modifyColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::dropIndex | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::supportsColumnPositioning | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::supportsCombinedAlter | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\MysqlDialect::quoteIdentifier | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::integer | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::bigInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::smallInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::varchar | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::text | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::longText | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::blob | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::boolean | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::timestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::char | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::currentTimestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::currentDate | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::autoIncrement | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::createTableSuffix | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::addColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::modifyColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::dropIndex | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::supportsColumnPositioning | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\PostgresDialect::quoteIdentifier | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::integer | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::bigInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::smallInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::varchar | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::text | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::longText | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::blob | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::boolean | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::timestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::char | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::currentTimestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::currentDate | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::autoIncrement | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::createTableSuffix | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::addColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::modifyColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::dropIndex | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::supportsColumnPositioning | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqlServerDialect::quoteIdentifier | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::getType | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::integer | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::bigInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::smallInteger | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::varchar | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::text | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::longText | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::blob | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::boolean | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::timestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::char | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::currentTimestamp | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::currentDate | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::autoIncrement | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::createTableSuffix | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::addColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::modifyColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::dropIndex | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::supportsColumnPositioning | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\Dialect\SqliteDialect::quoteIdentifier | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::createTable | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::createTableIfNotExists | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::alterTable | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::getDialect | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::getTablePrefix | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\QueryBuilder::table | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::ifNotExists | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::text | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::longText | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::blob | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::primaryKey | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::index | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::fullTextIndex | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::uniqueIndex | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\QueryBuilder\TableBuilder::addColumn | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Alpha::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Alpha::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta2::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta2::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320Beta2::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320RC::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320RC::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration320RC::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration323::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration323::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration323::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha2::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha2::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha2::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha3::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha3::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Alpha3::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Beta2::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Beta2::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration400Beta2::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration405::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration405::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration405::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration407::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration407::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration407::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration409::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration409::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration409::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha2::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha2::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha2::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha3::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha3::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha3::getDescription | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration410Alpha3::up | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration420Alpha::getVersion | 1 | 100.0% |
| phpMyFAQ\Setup\Migration\Versions\Migration420Alpha::getDependencies | 1 | 100.0% |
| phpMyFAQ\Setup\Update::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Update::isConfigTableNotAvailable | 1 | 100.0% |
| phpMyFAQ\Setup\Update::allMigrationsSucceeded | 1 | 100.0% |
| phpMyFAQ\Setup\UpdateRunner::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\UpdateToken::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\UpdateToken::getTokenFilePath | 1 | 100.0% |
| phpMyFAQ\Setup\Upgrade::__construct | 1 | 100.0% |
| phpMyFAQ\Setup\Upgrade::setUpgradeDirectory | 1 | 100.0% |
| phpMyFAQ\Setup\Upgrade::isNightly | 1 | 100.0% |
| phpMyFAQ\Setup\Upgrade::setIsNightly | 1 | 100.0% |
| phpMyFAQ\Setup\Upgrade::isMaintenanceEnabled | 1 | 100.0% |
| phpMyFAQ\Sitemap::setUser | 1 | 100.0% |
| phpMyFAQ\Sitemap::setGroups | 1 | 100.0% |
| phpMyFAQ\StopWords::__construct | 1 | 100.0% |
| phpMyFAQ\StopWords::getLanguage | 1 | 100.0% |
| phpMyFAQ\StopWords::getTableName | 1 | 100.0% |
| phpMyFAQ\StopWords::setLanguage | 1 | 100.0% |
| phpMyFAQ\StopWords::update | 1 | 100.0% |
| phpMyFAQ\StopWords::remove | 1 | 100.0% |
| phpMyFAQ\StopWords::match | 1 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::__construct | 1 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::exists | 1 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::buildFullPath | 1 | 100.0% |
| phpMyFAQ\Storage\FilesystemStorage::normalizePath | 1 | 100.0% |
| phpMyFAQ\Storage\S3Storage::__construct | 1 | 100.0% |
| phpMyFAQ\Storage\S3Storage::put | 1 | 100.0% |
| phpMyFAQ\Storage\S3Storage::delete | 1 | 100.0% |
| phpMyFAQ\Storage\S3Storage::exists | 1 | 100.0% |
| phpMyFAQ\Storage\StorageFactory::__construct | 1 | 100.0% |
| phpMyFAQ\Storage\StorageFactory::tenantPrefix | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::__construct | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::put | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::putStream | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::get | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::delete | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::exists | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::url | 1 | 100.0% |
| phpMyFAQ\Storage\TenantScopedStorage::size | 1 | 100.0% |
| phpMyFAQ\Strings::__construct | 1 | 100.0% |
| phpMyFAQ\Strings::instance | 1 | 100.0% |
| phpMyFAQ\Strings::strlen | 1 | 100.0% |
| phpMyFAQ\Strings::substr | 1 | 100.0% |
| phpMyFAQ\Strings::strtolower | 1 | 100.0% |
| phpMyFAQ\Strings::strtoupper | 1 | 100.0% |
| phpMyFAQ\Strings::strstr | 1 | 100.0% |
| phpMyFAQ\Strings::preg_match | 1 | 100.0% |
| phpMyFAQ\Strings::preg_match_all | 1 | 100.0% |
| phpMyFAQ\Strings::preg_split | 1 | 100.0% |
| phpMyFAQ\Strings::preg_replace_callback | 1 | 100.0% |
| phpMyFAQ\Strings::preg_replace | 1 | 100.0% |
| phpMyFAQ\Strings::htmlspecialchars | 1 | 100.0% |
| phpMyFAQ\Strings::htmlentities | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::__construct | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::strlen | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::strtolower | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::strtoupper | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::strstr | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::preg_match | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::preg_match_all | 1 | 100.0% |
| phpMyFAQ\Strings\Mbstring::preg_split | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::__construct | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::strlen | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::strpos | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::strtolower | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::strtoupper | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::strstr | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::preg_match | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::preg_match_all | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::preg_split | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::preg_replace_callback | 1 | 100.0% |
| phpMyFAQ\Strings\StringBasic::preg_replace | 1 | 100.0% |
| phpMyFAQ\System::getMajorVersion | 1 | 100.0% |
| phpMyFAQ\System::getApiVersion | 1 | 100.0% |
| phpMyFAQ\System::getPluginVersion | 1 | 100.0% |
| phpMyFAQ\System::getMcpServerVersion | 1 | 100.0% |
| phpMyFAQ\System::getPoweredByString | 1 | 100.0% |
| phpMyFAQ\System::getPoweredByPlainString | 1 | 100.0% |
| phpMyFAQ\System::getDocumentationUrl | 1 | 100.0% |
| phpMyFAQ\System::getGitHubIssuesUrl | 1 | 100.0% |
| phpMyFAQ\System::isDevelopmentVersion | 1 | 100.0% |
| phpMyFAQ\System::getDatabase | 1 | 100.0% |
| phpMyFAQ\System::setDatabase | 1 | 100.0% |
| phpMyFAQ\System::getSupportedDatabases | 1 | 100.0% |
| phpMyFAQ\System::getHttpsStatus | 1 | 100.0% |
| phpMyFAQ\System::checkInstallation | 1 | 100.0% |
| phpMyFAQ\System::getMissingExtensions | 1 | 100.0% |
| phpMyFAQ\Tags::__construct | 1 | 100.0% |
| phpMyFAQ\Tags::setUser | 1 | 100.0% |
| phpMyFAQ\Tags::setGroups | 1 | 100.0% |
| phpMyFAQ\Tags::deleteByRecordId | 1 | 100.0% |
| phpMyFAQ\Tags::update | 1 | 100.0% |
| phpMyFAQ\Tags::delete | 1 | 100.0% |
| phpMyFAQ\Template\ThemeManager::__construct | 1 | 100.0% |
| phpMyFAQ\Template\ThemeManager::getThemeRootPath | 1 | 100.0% |
| phpMyFAQ\Template\ThemeManager::isAllowedFileExtension | 1 | 100.0% |
| phpMyFAQ\Template\ThemeManager::isTwigTemplate | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantContext::__construct | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantContext::getTenantId | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantContext::getHostname | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantContext::getTablePrefix | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantContext::getConfigDir | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantContext::getPlan | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantContext::getQuotas | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantEventDispatcher::__construct | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantEventDispatcher::dispatchTenantCreated | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantEventDispatcher::dispatchTenantSuspended | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantEventDispatcher::dispatchTenantDeleted | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantEventDispatcher::dispatchTenantPlanChanged | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantEventDispatcher::dispatch | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantLifecycleEvent::__construct | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantLifecycleEvent::getTenantId | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantLifecycleEvent::getContext | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::__construct | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::createFromDatabaseDriver | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::assertCanCreateFaq | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::assertCanCreateCategory | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotaEnforcer::assertCanCreateUser | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotas::__construct | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotas::getMaxFaqs | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotas::getMaxAttachmentSize | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotas::getMaxUsers | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotas::getMaxApiRequests | 1 | 100.0% |
| phpMyFAQ\Tenant\TenantQuotas::getMaxCategories | 1 | 100.0% |
| phpMyFAQ\Translation::resetInstance | 1 | 100.0% |
| phpMyFAQ\Translation::getAll | 1 | 100.0% |
| phpMyFAQ\Translation::setTranslationsDir | 1 | 100.0% |
| phpMyFAQ\Translation::setDefaultLanguage | 1 | 100.0% |
| phpMyFAQ\Translation::getDefaultLanguage | 1 | 100.0% |
| phpMyFAQ\Translation::setCurrentLanguage | 1 | 100.0% |
| phpMyFAQ\Translation::getCurrentLanguage | 1 | 100.0% |
| phpMyFAQ\Translation::checkDefaultLanguageLoaded | 1 | 100.0% |
| phpMyFAQ\Translation::checkLanguageLoaded | 1 | 100.0% |
| phpMyFAQ\Translation::performInit | 1 | 100.0% |
| phpMyFAQ\Translation::filename | 1 | 100.0% |
| phpMyFAQ\Translation::fetchTranslationFile | 1 | 100.0% |
| phpMyFAQ\Translation\AbstractTranslationProvider::__construct | 1 | 100.0% |
| phpMyFAQ\Translation\ContentTranslationService::__construct | 1 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationRequest::__construct | 1 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationRequest::getSourceLang | 1 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationRequest::getTargetLang | 1 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationRequest::getFields | 1 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationResult::__construct | 1 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationResult::getTranslatedFields | 1 | 100.0% |
| phpMyFAQ\Translation\DTO\TranslationResult::isSuccess | 1 | 100.0% |
| phpMyFAQ\Translation\HtmlPreserver::replaceTags | 1 | 100.0% |
| phpMyFAQ\Translation\HtmlPreserver::restoreTags | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::mapLanguageCode | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::getSupportedLanguages | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::getProviderName | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AmazonTranslationProvider::getAwsSignedHeaders | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AzureTranslationProvider::getProviderName | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AzureTranslationProvider::doTranslate | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AzureTranslationProvider::supportsLanguagePair | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AzureTranslationProvider::getSupportedLanguages | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\AzureTranslationProvider::mapLanguageCode | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::getProviderName | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\DeepLTranslationProvider::getSupportedLanguages | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\GoogleTranslationProvider::getProviderName | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\GoogleTranslationProvider::supportsLanguagePair | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\GoogleTranslationProvider::getSupportedLanguages | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::getProviderName | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::doTranslateBatch | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::supportsLanguagePair | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::getSupportedLanguages | 1 | 100.0% |
| phpMyFAQ\Translation\Provider\LibreTranslationProvider::mapLanguageCode | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\CategoryNameTwigExtension::getCategoryName | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\CreateLinkTwigExtension::categoryLink | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\CreateLinkTwigExtension::faqLink | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\FaqTwigExtension::getFaqQuestion | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\FormatBytesTwigExtension::formatBytes | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\FormatDateTwigExtension::formatDate | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\IsoDateTwigExtension::createIsoDate | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\LanguageCodeTwigExtension::getFromLanguageCode | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\PluginTwigExtension::triggerPluginEvent | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\TagNameTwigExtension::getTagName | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\UserNameTwigExtension::getUserName | 1 | 100.0% |
| phpMyFAQ\Twig\Extensions\UserNameTwigExtension::getRealName | 1 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::setSetup | 1 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::addExtension | 1 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::addFunction | 1 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::getExtension | 1 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::addFilter | 1 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::getTemplateSetName | 1 | 100.0% |
| phpMyFAQ\Twig\TwigWrapper::setTemplateSetName | 1 | 100.0% |
| phpMyFAQ\User::addPerm | 1 | 100.0% |
| phpMyFAQ\User::getAuthSource | 1 | 100.0% |
| phpMyFAQ\User::getUserAuthSource | 1 | 100.0% |
| phpMyFAQ\User::getAuthData | 1 | 100.0% |
| phpMyFAQ\User::addAuth | 1 | 100.0% |
| phpMyFAQ\User::checkDisplayName | 1 | 100.0% |
| phpMyFAQ\User::checkMailAddress | 1 | 100.0% |
| phpMyFAQ\User::getTenantQuotaEnforcer | 1 | 100.0% |
| phpMyFAQ\User::getAuthContainer | 1 | 100.0% |
| phpMyFAQ\User::getUserData | 1 | 100.0% |
| phpMyFAQ\User::setUserData | 1 | 100.0% |
| phpMyFAQ\User::getLogin | 1 | 100.0% |
| phpMyFAQ\User::getUserIdByEmail | 1 | 100.0% |
| phpMyFAQ\User::setAuthSource | 1 | 100.0% |
| phpMyFAQ\User::isSuperAdmin | 1 | 100.0% |
| phpMyFAQ\User::setSuperAdmin | 1 | 100.0% |
| phpMyFAQ\User::terminateSessionId | 1 | 100.0% |
| phpMyFAQ\User::extractUserFromResult | 1 | 100.0% |
| phpMyFAQ\User::setWebAuthnKeys | 1 | 100.0% |
| phpMyFAQ\User::isEmailAddress | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::accountStateConfiguration | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::__construct | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::isLoggedIn | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::twoFactorFailure | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::isTwoFactorLockedOut | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::twoFactorSuccess | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::setLoggedIn | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::sessionIsTimedOut | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::sessionIdIsTimedOut | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::saveToSession | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::setSessionTimeout | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::enableRememberMe | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::setAuthSource | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::issueRememberMeCookie | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::setRememberMe | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::setSuccess | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::setTokenData | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::setLoginAttempt | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::isFailedLastLoginAttempt | 1 | 100.0% |
| phpMyFAQ\User\CurrentUser::hasExceededLoginAttempts | 1 | 100.0% |
| phpMyFAQ\User\PasswordResetTokenService::sign | 1 | 100.0% |
| phpMyFAQ\User\Tracking::__construct | 1 | 100.0% |
| phpMyFAQ\User\Tracking::getCookieId | 1 | 100.0% |
| phpMyFAQ\User\Tracking::isBanned | 1 | 100.0% |
| phpMyFAQ\User\Tracking::getBotIgnoreList | 1 | 100.0% |
| phpMyFAQ\User\Tracking::getRequestHeaders | 1 | 100.0% |
| phpMyFAQ\User\Tracking::getTrackingDirectory | 1 | 100.0% |
| phpMyFAQ\User\TrackingDataRedactor::isSensitive | 1 | 100.0% |
| phpMyFAQ\User\TwoFactor::__construct | 1 | 100.0% |
| phpMyFAQ\User\TwoFactor::generateSecret | 1 | 100.0% |
| phpMyFAQ\User\TwoFactor::getQrCode | 1 | 100.0% |
| phpMyFAQ\User\UserAuthentication::__construct | 1 | 100.0% |
| phpMyFAQ\User\UserAuthentication::isRememberMe | 1 | 100.0% |
| phpMyFAQ\User\UserAuthentication::setRememberMe | 1 | 100.0% |
| phpMyFAQ\User\UserAuthentication::hasTwoFactorAuthentication | 1 | 100.0% |
| phpMyFAQ\User\UserAuthentication::setTwoFactorAuth | 1 | 100.0% |
| phpMyFAQ\User\UserData::__construct | 1 | 100.0% |
| phpMyFAQ\User\UserSession::__construct | 1 | 100.0% |
| phpMyFAQ\User\UserSession::getCurrentSessionId | 1 | 100.0% |
| phpMyFAQ\User\UserSession::setCurrentSessionId | 1 | 100.0% |
| phpMyFAQ\User\UserSession::setCurrentUser | 1 | 100.0% |
| phpMyFAQ\User\UserSession::getBotIgnoreList | 1 | 100.0% |
| phpMyFAQ\User\UserSession::getRequest | 1 | 100.0% |
| phpMyFAQ\User\UserSession::getTrackingDirectory | 1 | 100.0% |
| phpMyFAQ\Utils::isLanguage | 1 | 100.0% |
| phpMyFAQ\Utils::resolveMarkers | 1 | 100.0% |
| phpMyFAQ\Utils::parseUrl | 1 | 100.0% |
| phpMyFAQ\Visits::__construct | 1 | 100.0% |
| phpMyFAQ\Visits::update | 1 | 100.0% |
| phpMyFAQ\Visits::getAllData | 1 | 100.0% |
| phpMyFAQ\Visits::resetAll | 1 | 100.0% |
| phpMyFAQ\Visits\VisitsRepository::__construct | 1 | 100.0% |
| phpMyFAQ\Visits\VisitsRepository::insert | 1 | 100.0% |
| phpMyFAQ\Visits\VisitsRepository::update | 1 | 100.0% |
| phpMyFAQ\Visits\VisitsRepository::resetAll | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setDatabase | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getLogger | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getDb | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setInstance | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getInstance | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setLanguage | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getLanguage | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setContainer | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getVersion | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getTitle | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getAdminEmail | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getTemplateSet | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getNoReplyEmail | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getMailProvider | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getDefaultUrl | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getRootPath | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setLdapConfig | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getLdapMapping | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getLdapOptions | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getLdapGroupConfig | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getLdapConfig | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getLdapServer | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::isLdapActive | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::isElasticsearchActive | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::isSignInWithMicrosoftActive | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::isSignInWithKeycloakActive | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setElasticsearch | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getElasticsearch | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setOpenSearch | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getOpenSearch | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setElasticsearchConfig | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getElasticsearchConfig | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setOpenSearchConfig | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getOpenSearchConfig | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setTranslationProvider | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::delete | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::rename | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getAllowedMediaHosts | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getCustomCss | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::setPluginManager | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getPluginManager | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::triggerEvent | 1 | 100.0% |
| phpMyFAQ\ConfigurationMethodsTrait::getPluginConfig | 1 | 100.0% |
| phpMyFAQ\User\CurrentUserAccountStateTrait::isLocalUser | 1 | 100.0% |
| phpMyFAQ\User\CurrentUserAccountStateTrait::isBlocked | 1 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractEntry::copyTo | 0 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractEntry::delete | 0 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::getChunk | 0 | 100.0% |
| phpMyFAQ\Attachment\Filesystem\AbstractFile::putChunk | 0 | 100.0% |
| phpMyFAQ\Translation\AbstractTranslationProvider::doTranslate | 0 | 100.0% |
| phpMyFAQ\Translation\AbstractTranslationProvider::doTranslateBatch | 0 | 100.0% |
| phpMyFAQ\Translation\AbstractTranslationProvider::mapLanguageCode | 0 | 100.0% |
| phpMyFAQ\User\CurrentUserAccountStateTrait::getUserId | 0 | 100.0% |
| phpMyFAQ\User\CurrentUserAccountStateTrait::accountStateConfiguration | 0 | 100.0% |