Created at 2024-05-08 11:35:23 , with PHPMetrics v2.8.2 (Jean-François Lépine).
Violations
36
Information
7
Warnings
19
Errors
10
Criticals
0

Class Violations

Class Violations
Snicco\Component\HttpRouting\Routing\Router
Too dependent information
This class looks use really high number of components.

* Efferent coupling is 23, so this class uses 23 different external components.

Maybe you should check why this class has lot of dependencies.
Too dependent
Snicco\Component\HttpRouting\Routing\UrlPath
Blob / God object error
A blob object (or "god class") does not follow the Single responsibility principle.

* object has lot of public methods (10, excluding getters and setters)
* object has a high Lack of cohesion of methods (LCOM=3)
* object knows everything (and use lot of external classes)

Maybe you should reducing the number of methods splitting this object in many sub objects.
Blob / God object
Snicco\Component\HttpRouting\Routing\RouteLoader\PHPFileRouteLoader
Probably bugged warning
This component contains in theory 0.47 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Probably bugged
Snicco\Component\HttpRouting\Routing\UrlGenerator\Generator
Probably bugged warning
This component contains in theory 0.9 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Probably bugged
Snicco\Component\HttpRouting\Routing\UrlMatcher\FastRouteDispatcher
Too complex method code error
This class looks really complex.

* Algorithms are complex (Max cyclomatic complexity of class methods is 19)

Maybe you should delegate some code to other objects or split complex method.
Probably bugged warning
This component contains in theory 0.45 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Too complex method code Probably bugged
Snicco\Component\HttpRouting\Routing\RoutingConfigurator\Configurator
Too complex class code error
This class looks really complex.

* Algorithms are complex (Total cyclomatic complexity of class is 36)
* Component uses 131 operators

Maybe you should delegate some code to other objects.
Probably bugged warning
This component contains in theory 1.35 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Too long information
This class looks really long.

* Class has 326 logical lines of code
* Class has 388 lines of code

Maybe your class should not exceed 200 lines of logical code
Too complex class code Probably bugged Too long
Snicco\Component\HttpRouting\Routing\Route\Route
Blob / God object error
A blob object (or "god class") does not follow the Single responsibility principle.

* object has lot of public methods (13, excluding getters and setters)
* object has a high Lack of cohesion of methods (LCOM=4)
* object knows everything (and use lot of external classes)

Maybe you should reducing the number of methods splitting this object in many sub objects.
Probably bugged warning
This component contains in theory 0.75 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Too long information
This class looks really long.

* Class has 238 logical lines of code
* Class has 352 lines of code

Maybe your class should not exceed 200 lines of logical code
Blob / God object Probably bugged Too long
Snicco\Component\HttpRouting\Http\Psr7\Request
Blob / God object error
A blob object (or "god class") does not follow the Single responsibility principle.

* object has lot of public methods (80, excluding getters and setters)
* object has a high Lack of cohesion of methods (LCOM=3)
* object knows everything (and use lot of external classes)

Maybe you should reducing the number of methods splitting this object in many sub objects.
Too complex class code error
This class looks really complex.

* Algorithms are complex (Total cyclomatic complexity of class is 38)
* Component uses 195 operators

Maybe you should delegate some code to other objects.
Probably bugged warning
This component contains in theory 1.35 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Too long information
This class looks really long.

* Class has 452 logical lines of code
* Class has 580 lines of code

Maybe your class should not exceed 200 lines of logical code
Blob / God object Too complex class code Probably bugged Too long
Snicco\Component\HttpRouting\Http\Psr7\Response
Too complex class code error
This class looks really complex.

* Algorithms are complex (Total cyclomatic complexity of class is 17)
* Component uses 100 operators

Maybe you should delegate some code to other objects.
Probably bugged warning
This component contains in theory 0.71 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Too long information
This class looks really long.

* Class has 227 logical lines of code
* Class has 294 lines of code

Maybe your class should not exceed 200 lines of logical code
Too complex class code Probably bugged Too long
Snicco\Component\HttpRouting\Http\ResponsePreparation
Too complex method code error
This class looks really complex.

* Algorithms are complex (Max cyclomatic complexity of class methods is 11)

Maybe you should delegate some code to other objects or split complex method.
Probably bugged warning
This component contains in theory 0.36 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Too complex method code Probably bugged
Snicco\Component\HttpRouting\Http\Cookie
Blob / God object error
A blob object (or "god class") does not follow the Single responsibility principle.

* object has lot of public methods (8, excluding getters and setters)
* object has a high Lack of cohesion of methods (LCOM=8)
* object knows everything (and use lot of external classes)

Maybe you should reducing the number of methods splitting this object in many sub objects.
Blob / God object
Snicco\Component\HttpRouting\Middleware\MiddlewareResolver
Too complex class code error
This class looks really complex.

* Algorithms are complex (Total cyclomatic complexity of class is 46)
* Component uses 107 operators

Maybe you should delegate some code to other objects.
Probably bugged warning
This component contains in theory 0.84 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Too long information
This class looks really long.

* Class has 219 logical lines of code
* Class has 335 lines of code

Maybe your class should not exceed 200 lines of logical code
Too complex class code Probably bugged Too long
Snicco\Component\HttpRouting\Testing\MiddlewareTestCase
Too dependent information
This class looks use really high number of components.

* Efferent coupling is 24, so this class uses 24 different external components.

Maybe you should check why this class has lot of dependencies.
Too dependent
Snicco\Component\HttpRouting\Testing\AssertableResponse
Probably bugged warning
This component contains in theory 0.58 bugs.

* Calculation is based on number of operators, operands, cyclomatic complexity
* See more details at https://en.wikipedia.org/wiki/Halstead_complexity_measures
* testsuites has dependency to this class.

Maybe you should check your unit tests for this class.
Probably bugged

Package Violations

Package Violations
Snicco\Component\HttpRouting\Routing\Exception
Stable Abstractions Principle warning
Packages should be either abstract and stable or concrete and instable.

This package is instable and abstract.
Stable Dependencies Principle warning
Packages should depend in the direction of stability.

This package is more stable (0.364) than 1 package(s) that it depends on.
The packages that are more stable are

* Snicco\Component\Psr7ErrorHandler (0.52)
Stable Abstractions Principle Stable Dependencies Principle
Snicco\Component\HttpRouting\Routing
Stable Dependencies Principle warning
Packages should depend in the direction of stability.

This package is more stable (0.781) than 2 package(s) that it depends on.
The packages that are more stable are

* Snicco\Component\HttpRouting\Routing\RouteLoader (0.833)
* Snicco\Component\HttpRouting\Routing\RoutingConfigurator (0.8)
Stable Dependencies Principle
Snicco\Component\HttpRouting\Routing\Route
Stable Dependencies Principle warning
Packages should depend in the direction of stability.

This package is more stable (0.429) than 1 package(s) that it depends on.
The packages that are more stable are

* Snicco\Component\HttpRouting\Routing\Condition (0.5)
Stable Dependencies Principle
Snicco\Component\HttpRouting\Routing\Admin
Stable Dependencies Principle warning
Packages should depend in the direction of stability.

This package is more stable (0.444) than 1 package(s) that it depends on.
The packages that are more stable are

* Snicco\Component\HttpRouting\Routing (0.781)
Stable Dependencies Principle
Snicco\Component\HttpRouting\Http\Psr7
Stable Abstractions Principle warning
Packages should be either abstract and stable or concrete and instable.

This package is instable and abstract.
Stable Dependencies Principle warning
Packages should depend in the direction of stability.

This package is more stable (0.26) than 3 package(s) that it depends on.
The packages that are more stable are

* Snicco\Component\HttpRouting\Routing\UrlMatcher (0.75)
* Snicco\Component\HttpRouting\Http (0.632)
* Snicco\Component\HttpRouting\Http\Response (0.286)
Stable Abstractions Principle Stable Dependencies Principle
Snicco\Component\HttpRouting\Http\Response
Stable Abstractions Principle warning
Packages should be either abstract and stable or concrete and instable.

This package is instable and abstract.
Stable Abstractions Principle
Snicco\Component\HttpRouting\Middleware
Stable Dependencies Principle warning
Packages should depend in the direction of stability.

This package is more stable (0.49) than 7 package(s) that it depends on.
The packages that are more stable are

* Snicco\Component\HttpRouting\Controller (0.875)
* Snicco\Component\Psr7ErrorHandler (0.52)
* Snicco\Component\HttpRouting (0.714)
* Snicco\Component\HttpRouting\Routing\UrlMatcher (0.75)
* Snicco\Component\HttpRouting\Routing\UrlGenerator (0.5)
* Snicco\Component\HttpRouting\Http (0.632)
* Snicco\Component\HttpRouting\Exception (0.667)
Stable Dependencies Principle