Architecture
The following insights are organised in different metrics :
NunoMaduro\PhpInsights\Domain\Metrics\Architecture\ClassesArchitecture\ClassesNunoMaduro\PhpInsights\Domain\Metrics\Architecture\ConstantsArchitecture\ConstantsNunoMaduro\PhpInsights\Domain\Metrics\Architecture\FilesArchitecture\FilesNunoMaduro\PhpInsights\Domain\Metrics\Architecture\FunctionsArchitecture\FunctionsNunoMaduro\PhpInsights\Domain\Metrics\Architecture\InterfacesArchitecture\InterfacesNunoMaduro\PhpInsights\Domain\Metrics\Architecture\NamespacesArchitecture\NamespacesNunoMaduro\PhpInsights\Domain\Metrics\Architecture\TraitsArchitecture\Traits
Forbidden normal classes ^1.0 Architecture\Classes
This insight disallows usage of normal classes. A Class must be abstract or final.
Insight Class: NunoMaduro\PhpInsights\Domain\Insights\ForbiddenNormalClasses
Valid class name ^1.0 Architecture\Classes
This sniff ensures classes are in camel caps, and the first letter is capitalised.
Insight Class: PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ValidClassNameSniff
Class declaration ^1.0 Architecture\Classes
This sniff checks if the declaration of the class is correct
Insight Class: PHP_CodeSniffer\Standards\PSR1\Sniffs\Classes\ClassDeclarationSniff
Class trait and interface length >=1.0 <2.0 Architecture\Classes configurable
This sniff checks the size of your classes/traits/interface
Insight Class: ObjectCalisthenics\Sniffs\Files\ClassTraitAndInterfaceLengthSniff
Configuration
\ObjectCalisthenics\Sniffs\Files\ClassTraitAndInterfaceLengthSniff::class => [
'maxLength' => 200,
]
Method per class limit >=1.0 <2.0 Architecture\Classes configurable
This sniff checks if the number of methods per class is under a limit.
Insight Class: ObjectCalisthenics\Sniffs\Metrics\MethodPerClassLimitSniff
Configuration
\ObjectCalisthenics\Sniffs\Metrics\MethodPerClassLimitSniff::class => [
'maxCount' => 10,
]
Property per class limit >=1.0 <2.0 Architecture\Classes configurable
This sniff checks if the number of properties per class is under a limit.
Insight Class: ObjectCalisthenics\Sniffs\Metrics\PropertyPerClassLimitSniff
Configuration
\ObjectCalisthenics\Sniffs\Metrics\PropertyPerClassLimitSniff::class => [
'maxCount' => 10,
]
One class per file ^1.0 Architecture\Classes
This sniff checks that only one class is declared per file.
Insight Class: PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneClassPerFileSniff
Superfluous interface naming ^1.0 Architecture\Classes
This sniff reports use of superfluous prefix or suffix "Interface" for interfaces.
Insight Class: SlevomatCodingStandard\Sniffs\Classes\SuperfluousInterfaceNamingSniff
Superfluous abstract class naming ^1.0 Architecture\Classes
This sniff reports use of superfluous prefix or suffix "Abstract" for abstract classes.
Insight Class: SlevomatCodingStandard\Sniffs\Classes\SuperfluousAbstractClassNamingSniff
Define globals is prohibited ^1.0 Architecture\Constants
This insight disallows defining globals.
Insight Class: NunoMaduro\PhpInsights\Domain\Insights\ForbiddenDefineGlobalConstants
Superfluous Exception Naming ^1.0 Architecture\Files
This sniff reports use of superfluous prefix or suffix "Exception" for exceptions.
Insight Class: SlevomatCodingStandard\Sniffs\Classes\SuperfluousExceptionNamingSniff
Function length ^1.0 Architecture\Functions configurable
This sniff checks the size of functions
Insight Class v1.0: ObjectCalisthenics\Sniffs\Files\FunctionLengthSniff
Configuration
\ObjectCalisthenics\Sniffs\Files\FunctionLengthSniff::class => [
'maxLength' => 20,
]
Insight Class v2.0: SlevomatCodingStandard\Sniffs\Functions\FunctionLengthSniff
Configuration
\SlevomatCodingStandard\Sniffs\Functions\FunctionLengthSniff::class => [
'maxLinesLength' => 20,
]
One interface per file ^1.0 Architecture\Interfaces
This sniff checks that only one interface is declared per file.
Insight Class: PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneInterfacePerFileSniff
Namespace declaration ^1.0 Architecture\Namespaces
This sniff enforces one space after namespace, disallows content between namespace name and semicolon and disallows use of bracketed syntax.
Insight Class: SlevomatCodingStandard\Sniffs\Namespaces\NamespaceDeclarationSniff
Useless Alias ^1.0 Architecture\Namespaces
This sniff looks for use alias that is the same as the unqualified name.
Insight Class: SlevomatCodingStandard\Sniffs\Namespaces\UselessAliasSniff
Compound namespace depth ^1.0 Architecture\Namespaces
This sniff verifies that compound namespaces are not defined too deep.
Insight Class: PHP_CodeSniffer\Standards\PSR12\Sniffs\Namespaces\CompoundNamespaceDepthSniff
Forbidden traits ^1.0 Architecture\Traits
This insight disallows trait usage.
Insight Class: NunoMaduro\PhpInsights\Domain\Insights\ForbiddenTraits
One trait per file ^1.0 Architecture\Traits
This sniff checks that only one trait is declared per file
Insight Class: PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneTraitPerFileSniff
Superfluous trait naming ^1.0 Architecture\Traits
This sniff reports use of superfluous prefix or suffix "Trait" for traits.
Insight Class: SlevomatCodingStandard\Sniffs\Classes\SuperfluousTraitNamingSniff
Method argument space ^1.10 Architecture\Functions configurable
In method arguments and method calls, there must not be a space before each comma and there must be one space after each comma. Argument lists may be split across multiple lines, where each subsequent line is indented once. When doing so, the first item in the list must be on the next line, and there must be only one argument per line.
Insight Class: PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer
Configuration
\PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer::class => [
'after_heredoc' => false,
'ensure_fully_multiline' => false,
'keep_multiple_spaces_after_comma' => false,
'on_multiline' => 'ignore' // possible values ['ignore', 'ensure_single_line', 'ensure_fully_multiline']
]