efabrica/coding-standard

PSR2 based coding standard for PHP PHP_CodeSniffer

0.7.0 2024-04-03 10:10 UTC

This package is auto-updated.

Last update: 2024-12-03 11:30:43 UTC


README

eFabrica coding standards for PHP_CodeSniffer are based on PSR2.

eFabrica coding standard

Is based on PSR2 and adds some rules:

  1. Allows max. 1 empty line between code lines
  2. Doesn't allow any whitespace at the end of lines
  3. Doesn't allow any whitespace between closing parenthesis and return type colon
  4. Requires exactly one space between type and variable
  5. Requires exactly one space between return type colon and return type
  6. Requires exactly one space before and after each operator
  7. Requires exactly one space before and after . (dot) in string concatenating
  8. Requires exactly one space after keywords private, protected, public, abstract, final
  9. Requires exactly one blank line before and one blank line after namespace statement
  10. Requires max. one namespace per file
  11. Doesn't allow any blank lines between uses and trait uses
  12. Requires one line before first use and one line after last use (not applied if it is trait use and it is first / last in class)
  13. Requires exactly one blank line before and after each function except first and last
  14. Requires exactly one blank line before and after each member var except first and last
  15. Requires new with parentheses.
  16. Prefer to use single quotes over double quotes. Double quotes are allowed if string contains variable
  17. Requires trailing comma after the last element of multi-line array
  18. Requires all names as reference (no fully qualified or partial names - everything is in uses)
  19. Requires all uses to be used
  20. Requires alphabetically sorted uses
  21. Disallows leading backslash for uses
  22. Disallows snake_case for properties, variables, function names, method names
  23. Doesn't allow underscore in method names
  24. Doesn't allow multiple spaces between type and property / variable / parameter
  25. Class structure is defined as follows: uses, enum cases, constants, properties, constructor, methods
  26. Requires visibility for all constants
  27. Requires exactly one blank line between methods
  28. Doesn't allow any useless comments

Usage

composer require efabrica/coding-standard --dev
vendor/bin/phpcs {dirs} --standard="vendor/efabrica/coding-standard/eFabrica" {other-options}

for {dirs} use space-separated list of directories
for {other-options} see vendor/bin/phpcs --help or visit PHP_CodeSniffer documentation

eFabricaStrict coding standard

Is based on eFabrica coding standard and adds some strict rules:

  1. Use declare(strict_types=1); at the top of each PHP file. Use one empty line before and also after declare
  2. Requires each class to be declared either as abstract or as final

Usage

composer require efabrica/coding-standard --dev
vendor/bin/phpcs {dirs} --standard="vendor/efabrica/coding-standard/eFabricaStrict" {other-options}

for {dirs} use space-separated list of directories
for {other-options} see vendor/bin/phpcs --help or visit PHP_CodeSniffer documentation