Checkout Config
inherit: true
filter:
paths: ['src/*']
excluded_paths: ['vendor/*', 'tests/*', 'bin/*', 'build/*', 'config/*', 'data/*', 'resources/*']
checks:
php:
code_rating: true
duplication: true
remove_extra_empty_lines: true
remove_php_closing_tag: true
remove_trailing_whitespace: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: true
order_alphabetically: true
fix_php_opening_tag: true
fix_linefeed: true
fix_line_ending: true
fix_identation_4spaces: true
fix_doc_comments: true
no_debug_code: true
coding_style:
php:
spaces:
around_operators:
bitwise: false
before_commands:
- 'sudo composer self-update'
- 'composer install --no-interaction'
build:
nodes:
php72:
environment:
php: '7.2'
tests:
override:
- php-scrutinizer-run --enable-security-analysis
-
command: 'vendor/bin/phpunit -c phpunit.xml'
coverage:
file: 'build/logs/clover.xml'
format: 'clover'
tools:
external_code_coverage: false
sensiolabs_security_checker: true
php_changetracking: true
php_code_coverage:
enabled: true
php_code_sniffer:
enabled: true
config:
standard: PSR2
filter:
paths: ["src/*", "tests/*"]
php_cpd:
enabled: true
excluded_dirs: ["build/*", "tests", "vendor"]
php_analyzer:
enabled: true
filter:
paths: ["src/*", "tests/*"]
php_mess_detector:
enabled: true
filter:
paths: ["src/*"]
config:
ruleset: "phpmd.xml"
php_pdepend:
enabled: true
excluded_dirs: ["build", "tests", "vendor"]
php_loc:
enabled: true
excluded_dirs: ["vendor", "tests", "bin", "build", "resources", "config", "data"]
php_cpd:
enabled: true
excluded_dirs: ["vendor", "tests", "bin", "build", "resources", "config", "data"]
Repository Config
inherit: true
filter:
paths: ['src/*']
excluded_paths: ['vendor/*', 'tests/*', 'bin/*', 'build/*', 'config/*', 'data/*', 'resources/*']
checks:
php:
code_rating: true
duplication: true
remove_extra_empty_lines: true
remove_php_closing_tag: true
remove_trailing_whitespace: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: true
order_alphabetically: true
fix_php_opening_tag: true
fix_linefeed: true
fix_line_ending: true
fix_identation_4spaces: true
fix_doc_comments: true
no_debug_code: true
coding_style:
php:
spaces:
around_operators:
bitwise: false
before_commands:
- 'sudo composer self-update'
- 'composer install --no-interaction'
build:
nodes:
php71:
environment:
php: '7.1'
tests:
override:
- php-scrutinizer-run --enable-security-analysis
-
command: 'vendor/bin/phpunit -c phpunit.xml'
coverage:
file: 'build/logs/clover.xml'
format: 'clover'
tools:
external_code_coverage: false
sensiolabs_security_checker: true
php_changetracking: true
php_code_coverage:
enabled: true
php_code_sniffer:
enabled: true
config:
standard: PSR2
filter:
paths: ["src/*", "tests/*"]
php_cpd:
enabled: true
excluded_dirs: ["build/*", "tests", "vendor"]
php_analyzer:
enabled: true
filter:
paths: ["src/*", "tests/*"]
php_mess_detector:
enabled: true
filter:
paths: ["src/*"]
config:
ruleset: "phpmd.xml"
php_pdepend:
enabled: true
excluded_dirs: ["build", "tests", "vendor"]
php_loc:
enabled: true
excluded_dirs: ["vendor", "tests", "bin", "build", "resources", "config", "data"]
php_cpd:
enabled: true
excluded_dirs: ["vendor", "tests", "bin", "build", "resources", "config", "data"]
Global Config
filter:
paths:
- 'src/*'
excluded_paths:
- 'vendor/*'
- 'tests/*'
- 'bin/*'
- 'build/*'
- 'config/*'
- 'data/*'
- 'resources/*'
checks:
php:
code_rating: true
duplication: true
overriding_parameter: false
javascript: true
coding_style:
php:
spaces:
around_operators:
bitwise: false
before_commands:
- 'sudo composer self-update'
- 'composer install --prefer-source --no-interaction'
build:
environment:
php: '5.6'
tests:
override:
-
command: 'vendor/bin/phpunit -c phpunit.xml'
coverage:
file: 'build/logs/clover.xml'
format: 'clover'
-
command: 'vendor/bin/phpcs --standard=PSR2 src/'
-
command: 'vendor/bin/phpmd src/ text phpmd.xml'
tools:
external_code_coverage:
enabled: false
php_code_coverage:
enabled: true
test_command: 'phpunit -c phpunit.xml'
filter:
excluded_paths:
- 'vendor/*'
- 'tests/*'
- 'bin/*'
- 'build/*'
- 'config/*'
- 'data/*'
- 'resources/*'
paths:
- 'src'
php_code_sniffer:
enabled: true
config:
standard: PSR2
sniffs:
generic:
files:
one_class_per_file_sniff: false
filter:
excluded_paths:
- 'vendor/*'
- 'tests/*'
- 'bin/*'
- 'build/*'
- 'config/*'
- 'data/*'
- 'resources/*'
paths:
- 'src'
# Copy/Paste Detector
php_cpd:
enabled: true
excluded_dirs:
- bin
- tests
- vendor
- build
- config
- data
- resources
# PHP CS Fixer (http://http://cs.sensiolabs.org/).
php_cs_fixer:
enabled: true
config:
level: psr2
filter:
excluded_paths:
- 'vendor/*'
- 'tests/*'
- 'bin/*'
- 'build/*'
- 'config/*'
- 'data/*'
- 'resources/*'
paths:
- 'src'
# Analyzes the size and structure of a PHP project.
php_loc:
enabled: true
excluded_dirs:
- bin
- tests
- vendor
- build
- config
- data
- resources
# PHP Mess Detector (http://phpmd.org).
php_mess_detector:
enabled: true
extensions:
- php
config:
ruleset: phpmd.xml
filter:
excluded_paths:
- 'vendor/*'
- 'tests/*'
- 'bin/*'
- 'build/*'
- 'config/*'
- 'data/*'
- 'resources/*'
paths:
- 'src'
# Analyzes the size and structure of a PHP project.
php_pdepend:
enabled: true
excluded_dirs:
- bin
- tests
- vendor
- build
- config
- data
- resources
# Runs Scrutinizer's PHP Analyzer Tool
# https://scrutinizer-ci.com/docs/tools/php/php-analyzer/config_reference
php_analyzer:
enabled: true
filter:
excluded_paths:
- 'docs/*'
- 'examples/*'
- 'extras/*'
- 'test/*'
- 'vendor/*'
- 'build/*'
- 'config/*'
- 'data/*'
- 'resources/*'
paths:
- 'src'
config:
parameter_reference_check:
enabled: true
checkstyle:
enabled: false
no_trailing_whitespace: true
naming:
enabled: true
local_variable: ^[a-z][a-zA-Z0-9]*$
abstract_class_name: ^Abstract
constant_name: ^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$
property_name: ^[a-z][a-zA-Z0-9]*$
method_name: ^(?:[a-z]|__)[a-zA-Z0-9]*$
parameter_name: ^[a-z][a-zA-Z0-9]*$
interface_name: ^[A-Z][a-zA-Z0-9]*Interface$
type_name: ^[A-Z][a-zA-Z0-9]*$
exception_name: ^[A-Z][a-zA-Z0-9]*Exception$
isser_method_name: ^(?:is|has|should|may|supports)
unreachable_code:
enabled: true
check_access_control:
enabled: true
typo_checks:
enabled: true
check_variables:
enabled: true
check_calls:
enabled: true
too_many_arguments: true
missing_argument: true
argument_type_checks: lenient # Allowed Values: "disabled", "lenient", "strict"
suspicious_code:
enabled: true
overriding_parameter: false
overriding_closure_use: true
parameter_closure_use_conflict: true
parameter_multiple_times: true
non_existent_class_in_instanceof_check: true
non_existent_class_in_catch_clause: true
assignment_of_null_return: true
non_commented_switch_fallthrough: true
non_commented_empty_catch_block: true
overriding_private_members: true
use_statement_alias_conflict: true
precedence_in_condition_assignment: true
dead_assignments:
enabled: true
verify_php_doc_comments:
enabled: false
parameters: true
return: true
suggest_more_specific_types: true
ask_for_return_if_not_inferrable: true
ask_for_param_type_annotation: true
loops_must_use_braces:
enabled: true
check_usage_context:
enabled: true
simplify_boolean_return:
enabled: false
phpunit_checks:
enabled: false
reflection_checks:
enabled: true
# Checks Common Precedence Mistakes
precedence_checks:
enabled: true
assignment_in_condition: true
comparison_of_bit_result: true
basic_semantic_checks:
enabled: true
# Disabled unused code. In most cases, we want to keep it.
unused_code:
enabled: false
deprecation_checks:
enabled: true
useless_function_calls:
enabled: true
metrics_lack_of_cohesion_methods:
enabled: true
metrics_coupling:
enabled: true
stable_code:
namespace_prefixes: []
classes: []
doctrine_parameter_binding:
enabled: false
doctrine_entity_manager_injection:
enabled: false
symfony_request_injection:
enabled: false
doc_comment_fixes:
enabled: true
reflection_fixes:
enabled: false
use_statement_fixes:
enabled: true
remove_unused: true
# Whether you would like multiple imports in one USE statement to be preserved, e.g. ``use A, B;``.
preserve_multiple: false
# Whether you would like to preserve blank lines between use statements.
preserve_blanklines: false
order_alphabetically: false
# To use specific config for a specific path, use path_configs: (see example on page https://scrutinizer-ci.com/docs/configuration/tool_config_structure)
# Security Advisory Checker
sensiolabs_security_checker: true