Checkout Config
build:
nodes:
analysis:
environment:
variables:
COMPOSER_ROOT_VERSION: 2.0
php:
version: 8.1
ini:
xdebug.mode: coverage
tests:
override:
- php-scrutinizer-run
standalone-tests-with-decimal:
environment:
apt_packages:
- libmpdec-dev
variables:
COMPOSER_ROOT_VERSION: 2.0
php:
version: 8.1
ini:
xdebug.mode: coverage
requires:
- node: analysis
tests:
before:
- mkdir build
- mkdir build/logs
- pecl install decimal
override:
- command: php vendor/bin/phpunit
coverage:
file: build/logs/coverage.clover
format: clover
standalone-tests-with-bcmath:
environment:
variables:
COMPOSER_ROOT_VERSION: 2.0
php:
version: 8.1
ini:
xdebug.mode: coverage
requires:
- node: standalone-tests-with-decimal
tests:
before:
- mkdir build
- mkdir build/logs
override:
- command: php vendor/bin/phpunit
coverage:
file: build/logs/coverage.clover
format: clover
build_failure_conditions:
- 'project.metric_change("scrutinizer.test_coverage", < -0.05)'
- 'project.metric("scrutinizer.test_coverage", < 0.70)'
- 'project.metric("scrutinizer.quality", < 8)'
Repository Config
filter:
excluded_paths:
- 'tests/*'
- 'tests-with-modules/*'
- 'site/*'
- 'docs/*'
- 'vendor/*'
- 'tests-with-decimal/*'
- 'tests-bench/*'
checks:
php: true
coding_style:
php:
indentation:
general:
use_tabs: false
size: 4
switch:
indent_case: true
spaces:
general:
linefeed_character: return-newline
before_parentheses:
function_declaration: false
closure_definition: false
function_call: false
if: true
for: true
while: true
switch: true
catch: true
array_initializer: false
around_operators:
assignment: true
logical: true
equality: true
relational: true
bitwise: true
additive: false
multiplicative: false
shift: true
unary_additive: false
concatenation: false
negation: false
before_left_brace:
class: true
function: true
if: true
else: true
for: true
while: true
do: true
switch: true
try: true
catch: true
finally: true
before_keywords:
else: true
while: true
catch: true
finally: true
within:
brackets: false
array_initializer: false
grouping: false
function_call: false
function_declaration: false
if: false
for: false
while: false
switch: false
catch: false
type_cast: false
ternary_operator:
before_condition: true
after_condition: true
before_alternative: true
after_alternative: true
in_short_version: false
other:
before_comma: false
after_comma: true
before_semicolon: false
after_semicolon: false
after_type_cast: false
braces:
classes_functions:
class: undefined
function: undefined
closure: undefined
if:
opening: undefined
always: true
else_on_new_line: false
for:
opening: undefined
always: true
while:
opening: undefined
always: true
do_while:
opening: undefined
always: true
while_on_new_line: false
switch:
opening: undefined
try:
opening: undefined
catch_on_new_line: false
finally_on_new_line: false
upper_lower_casing:
keywords:
general: lower
constants:
true_false_null: lower
build:
nodes:
analysis:
tests:
override:
- command: phpcs-run
use_website_config: false
- php-scrutinizer-run
Global Config
checks:
php:
verify_property_names: true
verify_argument_usable_as_reference: true
verify_access_scope_valid: true
variable_existence: true
useless_calls: true
use_statement_alias_conflict: true
use_self_instead_of_fqcn: true
uppercase_constants: true
unused_variables: true
unused_properties: true
unused_parameters: true
unused_methods: true
unreachable_code: true
too_many_arguments: true
switch_fallthrough_commented: true
sql_injection_vulnerabilities: true
single_namespace_per_use: true
simplify_boolean_return: true
side_effects_or_types: true
security_vulnerabilities: true
return_doc_comments: true
return_doc_comment_if_not_inferrable: true
require_scope_for_properties: true
require_scope_for_methods: true
require_php_tag_first: true
psr2_switch_declaration: true
psr2_class_declaration: true
property_assignments: true
properties_in_camelcaps: true
prefer_while_loop_over_for_loop: true
php5_style_constructor: true
phpunit_assertions: true
precedence_mistakes: true
precedence_in_conditions: true
parse_doc_comments: true
parameters_in_camelcaps: true
parameter_non_unique: true
parameter_doc_comments: true
param_doc_comment_if_not_inferrable: true
overriding_private_members: true
optional_parameters_at_the_end: true
one_class_per_file: true
non_commented_empty_catch_block: true
no_unnecessary_if: true
no_unnecessary_final_modifier: true
no_underscore_prefix_in_properties: true
no_underscore_prefix_in_methods: true
no_trait_type_hints: true
no_trailing_whitespace: true
no_short_variable_names:
minimum: '3'
no_short_open_tag: true
no_property_on_interface: true
no_short_method_names:
minimum: '3'
no_non_implemented_abstract_methods: true
no_new_line_at_end_of_file: true
no_long_variable_names:
maximum: '20'
no_goto: true
no_global_keyword: true
no_exit: true
no_eval: true
no_error_suppression: true
no_empty_statements: true
no_duplicate_arguments: true
no_debug_code: true
no_commented_out_code: true
naming_conventions:
local_variable: '^[a-z][a-zA-Z0-9]*$'
abstract_class_name: ^Abstract|Factory$
utility_class_name: 'Utils?$'
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)'
more_specific_types_in_doc_comments: true
missing_arguments: true
method_calls_on_non_object: true
instanceof_class_exists: true
function_in_camel_caps: true
foreach_usable_as_reference: true
foreach_traversable: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: false
order_alphabetically: false
encourage_single_quotes: true
encourage_shallow_comparison: true
encourage_postdec_operator: true
duplication: true
deprecated_code_usage: true
deadlock_detection_in_loops: true
code_rating: true
closure_use_not_conflicting: true
closure_use_modifiable: true
classes_in_camel_caps: true
catch_class_exists: true
avoid_useless_overridden_methods: true
blank_line_after_namespace_declaration: true
avoid_usage_of_logical_operators: true
avoid_unnecessary_concatenation: true
avoid_superglobals: true
avoid_perl_style_comments: true
avoid_multiple_statements_on_same_line: true
avoid_length_functions_in_loops: true
avoid_fixme_comments: true
avoid_duplicate_types: true
avoid_corrupting_byteorder_marks: true
avoid_conflicting_incrementers: true
avoid_closing_tag: true
assignment_of_null_return: true
argument_type_checks: true
align_assignments: true
coding_style:
php:
spaces:
general:
linefeed_character: return-newline
around_operators:
additive: false
multiplicative: false