Classes

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

0% 20% 40% 60% 80% 100% 0 20 40 60 Line Coverage (%) Cyclomatic Complexity phpMyFAQ\Controller\Frontend\Api\UserController — Coverage: 95.5% | Lines: 154 | Complexity: 53 phpMyFAQ\Controller\Frontend\Api\FaqController — Coverage: 91.5% | Lines: 117 | Complexity: 40 phpMyFAQ\Controller\Frontend\Api\WebAuthnController — Coverage: 93.3% | Lines: 105 | Complexity: 35 phpMyFAQ\Controller\Frontend\Api\CommentController — Coverage: 91.9% | Lines: 99 | Complexity: 35 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController — Coverage: 90.6% | Lines: 96 | Complexity: 31 phpMyFAQ\Controller\Frontend\Api\SetupController — Coverage: 92.6% | Lines: 95 | Complexity: 30 phpMyFAQ\Controller\Frontend\Api\QuestionController — Coverage: 97.4% | Lines: 76 | Complexity: 27 phpMyFAQ\Controller\Frontend\Api\ChatController — Coverage: 97.3% | Lines: 75 | Complexity: 17 phpMyFAQ\Controller\Frontend\Api\ChatSseController — Coverage: 84.0% | Lines: 75 | Complexity: 10 phpMyFAQ\Controller\Frontend\Api\PushController — Coverage: 100.0% | Lines: 44 | Complexity: 15 phpMyFAQ\Controller\Frontend\Api\BookmarkController — Coverage: 90.2% | Lines: 41 | Complexity: 13 phpMyFAQ\Controller\Frontend\Api\ContactController — Coverage: 100.0% | Lines: 39 | Complexity: 14 phpMyFAQ\Controller\Frontend\Api\RegistrationController — Coverage: 97.3% | Lines: 37 | Complexity: 18 phpMyFAQ\Controller\Frontend\Api\VotingController — Coverage: 100.0% | Lines: 35 | Complexity: 14 phpMyFAQ\Controller\Frontend\Api\AutoCompleteController — Coverage: 100.0% | Lines: 18 | Complexity: 5 phpMyFAQ\Controller\Frontend\Api\TranslationController — Coverage: 100.0% | Lines: 10 | Complexity: 4 phpMyFAQ\Controller\Frontend\Api\CaptchaController — Coverage: 100.0% | Lines: 8 | Complexity: 3 phpMyFAQ\Controller\Frontend\Api\PopularSearchesController — Coverage: 100.0% | Lines: 8 | Complexity: 4

Methods

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

0% 20% 40% 60% 80% 100% 0 10 20 30 40 50 Line Coverage (%) Cyclomatic Complexity phpMyFAQ\Controller\Frontend\Api\FaqController::create — Coverage: 91.1% | Lines: 112 | Complexity: 37 phpMyFAQ\Controller\Frontend\Api\CommentController::create — Coverage: 91.5% | Lines: 94 | Complexity: 32 phpMyFAQ\Controller\Frontend\Api\ChatSseController::stream — Coverage: 83.8% | Lines: 74 | Complexity: 9 phpMyFAQ\Controller\Frontend\Api\QuestionController::create — Coverage: 98.5% | Lines: 67 | Complexity: 23 phpMyFAQ\Controller\Frontend\Api\UserController::updateData — Coverage: 100.0% | Lines: 52 | Complexity: 22 phpMyFAQ\Controller\Frontend\Api\UserController::requestUserRemoval — Coverage: 93.8% | Lines: 48 | Complexity: 16 phpMyFAQ\Controller\Frontend\Api\WebAuthnController::prepare — Coverage: 92.5% | Lines: 40 | Complexity: 14 phpMyFAQ\Controller\Frontend\Api\ContactController::create — Coverage: 100.0% | Lines: 38 | Complexity: 13 phpMyFAQ\Controller\Frontend\Api\RegistrationController::create — Coverage: 97.3% | Lines: 37 | Complexity: 18 phpMyFAQ\Controller\Frontend\Api\UserController::exportUserData — Coverage: 88.9% | Lines: 36 | Complexity: 8 phpMyFAQ\Controller\Frontend\Api\VotingController::create — Coverage: 100.0% | Lines: 34 | Complexity: 13 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::requestReset — Coverage: 87.9% | Lines: 33 | Complexity: 10 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::reset — Coverage: 87.1% | Lines: 31 | Complexity: 15 phpMyFAQ\Controller\Frontend\Api\WebAuthnController::login — Coverage: 96.6% | Lines: 29 | Complexity: 8 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::sendResetLinkEmail — Coverage: 100.0% | Lines: 25 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\PushController::subscribe — Coverage: 100.0% | Lines: 22 | Complexity: 7 phpMyFAQ\Controller\Frontend\Api\SetupController::check — Coverage: 100.0% | Lines: 21 | Complexity: 6 phpMyFAQ\Controller\Frontend\Api\SetupController::backup — Coverage: 81.0% | Lines: 21 | Complexity: 6 phpMyFAQ\Controller\Frontend\Api\SetupController::updateDatabase — Coverage: 100.0% | Lines: 20 | Complexity: 6 phpMyFAQ\Controller\Frontend\Api\WebAuthnController::register — Coverage: 84.2% | Lines: 19 | Complexity: 7 phpMyFAQ\Controller\Frontend\Api\ChatController::send — Coverage: 94.4% | Lines: 18 | Complexity: 5 phpMyFAQ\Controller\Frontend\Api\AutoCompleteController::search — Coverage: 100.0% | Lines: 17 | Complexity: 4 phpMyFAQ\Controller\Frontend\Api\ChatController::getMessages — Coverage: 100.0% | Lines: 17 | Complexity: 4 phpMyFAQ\Controller\Frontend\Api\UserController::removeTwofactorConfig — Coverage: 100.0% | Lines: 17 | Complexity: 6 phpMyFAQ\Controller\Frontend\Api\BookmarkController::create — Coverage: 93.8% | Lines: 16 | Complexity: 5 phpMyFAQ\Controller\Frontend\Api\BookmarkController::delete — Coverage: 87.5% | Lines: 16 | Complexity: 5 phpMyFAQ\Controller\Frontend\Api\ChatController::markAsRead — Coverage: 92.3% | Lines: 13 | Complexity: 4 phpMyFAQ\Controller\Frontend\Api\ChatController::searchUsers — Coverage: 100.0% | Lines: 13 | Complexity: 2 phpMyFAQ\Controller\Frontend\Api\PushController::unsubscribe — Coverage: 100.0% | Lines: 13 | Complexity: 5 phpMyFAQ\Controller\Frontend\Api\WebAuthnController::prepareLogin — Coverage: 100.0% | Lines: 13 | Complexity: 5 phpMyFAQ\Controller\Frontend\Api\SetupController::isAuthenticatedAdministrator — Coverage: 70.0% | Lines: 10 | Complexity: 4 phpMyFAQ\Controller\Frontend\Api\BookmarkController::deleteAll — Coverage: 88.9% | Lines: 9 | Complexity: 3 phpMyFAQ\Controller\Frontend\Api\SetupController::denyUnauthorizedRequest — Coverage: 100.0% | Lines: 9 | Complexity: 2 phpMyFAQ\Controller\Frontend\Api\TranslationController::translations — Coverage: 100.0% | Lines: 9 | Complexity: 3 phpMyFAQ\Controller\Frontend\Api\QuestionController::isAddingQuestionsAllowed — Coverage: 87.5% | Lines: 8 | Complexity: 3 phpMyFAQ\Controller\Frontend\Api\SetupController::createUpdate — Coverage: 100.0% | Lines: 8 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\CaptchaController::renderImage — Coverage: 100.0% | Lines: 7 | Complexity: 2 phpMyFAQ\Controller\Frontend\Api\ChatController::getConversations — Coverage: 100.0% | Lines: 7 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\ChatController::getUnreadCount — Coverage: 100.0% | Lines: 7 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\PopularSearchesController::popular — Coverage: 100.0% | Lines: 7 | Complexity: 3 phpMyFAQ\Controller\Frontend\Api\CommentController::isCommentAllowed — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Controller\Frontend\Api\FaqController::isAddingFaqsAllowed — Coverage: 100.0% | Lines: 4 | Complexity: 2 phpMyFAQ\Controller\Frontend\Api\PushController::getVapidPublicKey — Coverage: 100.0% | Lines: 4 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\PushController::status — Coverage: 100.0% | Lines: 4 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\WebAuthnController::__construct — Coverage: 100.0% | Lines: 4 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\SetupController::isAuthorizedForUpdate — Coverage: 100.0% | Lines: 3 | Complexity: 2 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::__construct — Coverage: 100.0% | Lines: 3 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\AutoCompleteController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\CaptchaController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\ChatSseController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\CommentController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\ContactController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\FaqController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\PopularSearchesController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\PushController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\QuestionController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\SetupController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\SetupController::isSecured — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\SetupController::getUpdateToken — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\TranslationController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::json — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::genericIssuanceResponse — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::tooManyRequests — Coverage: 0.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::clientIp — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\UserController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 phpMyFAQ\Controller\Frontend\Api\VotingController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
phpMyFAQ\Controller\Frontend\Api\FaqController::create37.9791.1%
phpMyFAQ\Controller\Frontend\Api\CommentController::create32.6391.5%
phpMyFAQ\Controller\Frontend\Api\QuestionController::create2398.5%
phpMyFAQ\Controller\Frontend\Api\UserController::updateData22100.0%
phpMyFAQ\Controller\Frontend\Api\RegistrationController::create1897.3%
phpMyFAQ\Controller\Frontend\Api\UserController::requestUserRemoval16.0693.8%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::reset15.4887.1%
phpMyFAQ\Controller\Frontend\Api\WebAuthnController::prepare14.0892.5%
phpMyFAQ\Controller\Frontend\Api\ContactController::create13100.0%
phpMyFAQ\Controller\Frontend\Api\VotingController::create13100.0%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::requestReset10.1887.9%
phpMyFAQ\Controller\Frontend\Api\ChatSseController::stream9.3583.8%
phpMyFAQ\Controller\Frontend\Api\UserController::exportUserData8.0988.9%
phpMyFAQ\Controller\Frontend\Api\WebAuthnController::login896.6%
phpMyFAQ\Controller\Frontend\Api\WebAuthnController::register7.1984.2%
phpMyFAQ\Controller\Frontend\Api\PushController::subscribe7100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::backup6.2581.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::check6100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::updateDatabase6100.0%
phpMyFAQ\Controller\Frontend\Api\UserController::removeTwofactorConfig6100.0%
phpMyFAQ\Controller\Frontend\Api\BookmarkController::delete5.0587.5%
phpMyFAQ\Controller\Frontend\Api\BookmarkController::create5.0193.8%
phpMyFAQ\Controller\Frontend\Api\ChatController::send5.0094.4%
phpMyFAQ\Controller\Frontend\Api\PushController::unsubscribe5100.0%
phpMyFAQ\Controller\Frontend\Api\WebAuthnController::prepareLogin5100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::isAuthenticatedAdministrator4.4370.0%
phpMyFAQ\Controller\Frontend\Api\ChatController::markAsRead4.0192.3%
phpMyFAQ\Controller\Frontend\Api\AutoCompleteController::search4100.0%
phpMyFAQ\Controller\Frontend\Api\ChatController::getMessages4100.0%
phpMyFAQ\Controller\Frontend\Api\QuestionController::isAddingQuestionsAllowed3.0287.5%
phpMyFAQ\Controller\Frontend\Api\BookmarkController::deleteAll3.0188.9%
phpMyFAQ\Controller\Frontend\Api\PopularSearchesController::popular3100.0%
phpMyFAQ\Controller\Frontend\Api\TranslationController::translations3100.0%
phpMyFAQ\Controller\Frontend\Api\CaptchaController::renderImage2100.0%
phpMyFAQ\Controller\Frontend\Api\ChatController::searchUsers2100.0%
phpMyFAQ\Controller\Frontend\Api\CommentController::isCommentAllowed2100.0%
phpMyFAQ\Controller\Frontend\Api\FaqController::isAddingFaqsAllowed2100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::denyUnauthorizedRequest2100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::isAuthorizedForUpdate2100.0%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::tooManyRequests20.0%
phpMyFAQ\Controller\Frontend\Api\AutoCompleteController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\CaptchaController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\ChatController::getConversations1100.0%
phpMyFAQ\Controller\Frontend\Api\ChatController::getUnreadCount1100.0%
phpMyFAQ\Controller\Frontend\Api\ChatSseController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\CommentController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\ContactController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\FaqController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\PopularSearchesController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\PushController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\PushController::getVapidPublicKey1100.0%
phpMyFAQ\Controller\Frontend\Api\PushController::status1100.0%
phpMyFAQ\Controller\Frontend\Api\QuestionController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::isSecured1100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::createUpdate1100.0%
phpMyFAQ\Controller\Frontend\Api\SetupController::getUpdateToken1100.0%
phpMyFAQ\Controller\Frontend\Api\TranslationController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::json1100.0%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::sendResetLinkEmail1100.0%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::genericIssuanceResponse1100.0%
phpMyFAQ\Controller\Frontend\Api\UnauthorizedUserController::clientIp1100.0%
phpMyFAQ\Controller\Frontend\Api\UserController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\VotingController::__construct1100.0%
phpMyFAQ\Controller\Frontend\Api\WebAuthnController::__construct1100.0%