Classes

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

0% 20% 40% 60% 80% 100% 0 2 4 6 8 Line Coverage (%) Cyclomatic Complexity App\Expense\Infrastructure\Controllers\RecordExpenseController — Coverage: 100.0% | Lines: 21 | Complexity: 6 App\Expense\Infrastructure\Controllers\UpdateExpenseController — Coverage: 95.2% | Lines: 21 | Complexity: 7 App\Expense\Infrastructure\Controllers\Admin\UpdateCategoryController — Coverage: 100.0% | Lines: 14 | Complexity: 4 App\Expense\Infrastructure\Persistence\Doctrine\Type\CategoryType — Coverage: 100.0% | Lines: 12 | Complexity: 6 App\Expense\Infrastructure\Controllers\DeleteExpenseController — Coverage: 80.0% | Lines: 10 | Complexity: 6 App\Expense\Infrastructure\Controllers\GetExpenseController — Coverage: 100.0% | Lines: 10 | Complexity: 5 App\Expense\Infrastructure\Controllers\ListExpensesController — Coverage: 100.0% | Lines: 10 | Complexity: 4 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository — Coverage: 100.0% | Lines: 8 | Complexity: 5 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository — Coverage: 100.0% | Lines: 8 | Complexity: 5 App\Expense\Infrastructure\Http\ValidatesExpenseId — Coverage: 100.0% | Lines: 3 | Complexity: 2 App\Expense\Infrastructure\Controllers\Admin\ListAdminCategoriesController — Coverage: 100.0% | Lines: 2 | Complexity: 2 App\Expense\Infrastructure\Controllers\ListCategoriesController — Coverage: 100.0% | Lines: 2 | Complexity: 2 App\Expense\Infrastructure\Persistence\Doctrine\Type\ExpenseIdType — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\Type\ExpenseTripIdType — Coverage: 100.0% | Lines: 1 | Complexity: 1

Methods

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

0% 20% 40% 60% 80% 100% 0 2 4 6 8 Line Coverage (%) Cyclomatic Complexity App\Expense\Infrastructure\Controllers\RecordExpenseController::record — Coverage: 100.0% | Lines: 20 | Complexity: 5 App\Expense\Infrastructure\Controllers\UpdateExpenseController::update — Coverage: 95.0% | Lines: 20 | Complexity: 6 App\Expense\Infrastructure\Controllers\Admin\UpdateCategoryController::update — Coverage: 100.0% | Lines: 13 | Complexity: 3 App\Expense\Infrastructure\Controllers\DeleteExpenseController::delete — Coverage: 77.8% | Lines: 9 | Complexity: 5 App\Expense\Infrastructure\Controllers\GetExpenseController::get — Coverage: 100.0% | Lines: 9 | Complexity: 4 App\Expense\Infrastructure\Controllers\ListExpensesController::list — Coverage: 100.0% | Lines: 9 | Complexity: 3 App\Expense\Infrastructure\Persistence\Doctrine\Type\CategoryType::convertToDatabaseValue — Coverage: 100.0% | Lines: 6 | Complexity: 3 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::all — Coverage: 100.0% | Lines: 4 | Complexity: 2 App\Expense\Infrastructure\Persistence\Doctrine\Type\CategoryType::convertToPHPValue — Coverage: 100.0% | Lines: 4 | Complexity: 2 App\Expense\Infrastructure\Http\ValidatesExpenseId::parseExpenseId — Coverage: 100.0% | Lines: 3 | Complexity: 2 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::save — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::save — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::remove — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::ofTrip — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\Type\CategoryType::getSQLDeclaration — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Expense\Infrastructure\Controllers\Admin\ListAdminCategoriesController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\Admin\ListAdminCategoriesController::list — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\Admin\UpdateCategoryController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\DeleteExpenseController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\GetExpenseController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\ListCategoriesController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\ListCategoriesController::list — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\ListExpensesController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\RecordExpenseController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Controllers\UpdateExpenseController::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::ofCategory — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::ofId — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\Type\ExpenseIdType::className — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Expense\Infrastructure\Persistence\Doctrine\Type\ExpenseTripIdType::className — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
App\Expense\Infrastructure\Controllers\UpdateExpenseController::update695.0%
App\Expense\Infrastructure\Controllers\DeleteExpenseController::delete5.2777.8%
App\Expense\Infrastructure\Controllers\RecordExpenseController::record5100.0%
App\Expense\Infrastructure\Controllers\GetExpenseController::get4100.0%
App\Expense\Infrastructure\Controllers\Admin\UpdateCategoryController::update3100.0%
App\Expense\Infrastructure\Controllers\ListExpensesController::list3100.0%
App\Expense\Infrastructure\Persistence\Doctrine\Type\CategoryType::convertToDatabaseValue3100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::all2100.0%
App\Expense\Infrastructure\Persistence\Doctrine\Type\CategoryType::convertToPHPValue2100.0%
App\Expense\Infrastructure\Http\ValidatesExpenseId::parseExpenseId2100.0%
App\Expense\Infrastructure\Controllers\Admin\ListAdminCategoriesController::__construct1100.0%
App\Expense\Infrastructure\Controllers\Admin\ListAdminCategoriesController::list1100.0%
App\Expense\Infrastructure\Controllers\Admin\UpdateCategoryController::__construct1100.0%
App\Expense\Infrastructure\Controllers\DeleteExpenseController::__construct1100.0%
App\Expense\Infrastructure\Controllers\GetExpenseController::__construct1100.0%
App\Expense\Infrastructure\Controllers\ListCategoriesController::__construct1100.0%
App\Expense\Infrastructure\Controllers\ListCategoriesController::list1100.0%
App\Expense\Infrastructure\Controllers\ListExpensesController::__construct1100.0%
App\Expense\Infrastructure\Controllers\RecordExpenseController::__construct1100.0%
App\Expense\Infrastructure\Controllers\UpdateExpenseController::__construct1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::__construct1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::save1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineCategorySettingRepository::ofCategory1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::__construct1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::save1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::remove1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::ofId1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\DoctrineExpenseRepository::ofTrip1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\Type\CategoryType::getSQLDeclaration1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\Type\ExpenseIdType::className1100.0%
App\Expense\Infrastructure\Persistence\Doctrine\Type\ExpenseTripIdType::className1100.0%