PHP 8.6 arrives on November 19. DressCode already rewrites code for it. 16 days Upgrading to a newer PHP →

PHP CS Fixer Rules in DressCode

All you need is the name of a PHP CS Fixer rule, such as no_unused_imports or trailing_comma_in_multiline: the table shows the DressCode decisions that do the same job, with links to their values and examples. This works for Laravel Pint too, because Pint is built on PHP CS Fixer and uses the same rule names.

In DressCode, you do not turn rules on. Each line of the configuration is a decision about how one thing in the code looks. So one fixer often becomes several decisions, and one decision can cover the rules of several tools: both array_syntax and Generic.Arrays.DisallowLongArraySyntax become literals.arraySyntax.array. You do not have to convert your configuration rule by rule, though: dresscode migrate config .php-cs-fixer.dist.php converts it and lists the rules that have no counterpart (see From PHP CS Fixer to DressCode).

The table also lists the rules of the kubawerlos/php-cs-fixer-custom-fixers package. A rule missing from it has no counterpart in DressCode yet.

PHP CS Fixer DressCode
align_multiline_comment phpdoc.stars
array_indentation indentation.unit
array_syntax literals.arraySyntax.array
assign_null_coalescing_to_coalesce_equal expressions.assignment.targetInValue
attribute_block_no_spaces spacing.attribute
attribute_empty_parentheses classes.emptyParentheses.attribute
backtick_to_shell_exec upgrading.php.backticks
binary_operator_spaces spacing.binaryOperator, spacing.alignment.binaryOperator
blank_lines_before_namespace blankLines.beforeNamespace
blank_line_after_namespace blankLines.afterNamespace, blankLines.beforeDeclaration
blank_line_after_opening_tag blankLines.afterOpeningTag
blank_line_before_statement blankLines.beforeStatement
blank_line_between_import_groups blankLines.betweenImports, blankLines.betweenImportKinds
braces_position braces.position.class, braces.position.function, braces.position.multilineSignature, braces.position.closure, braces.position.anonymousClass, braces.position.controlStructure, braces.emptyBody.anonymousClass, braces.singlelineClosure
cast_spaces spacing.cast
class_attributes_separation blankLines.aroundMethods, blankLines.aroundInterfaceMethods, blankLines.betweenTraitUses, blankLines.betweenMemberKinds, blankLines.betweenMembers.constant, blankLines.betweenMembers.property, blankLines.betweenMembers.enumCase, blankLines.beforeDocumentedMember
class_definition spacing.anonymousClass
class_keyword literals.classNameInString
class_reference_name_casing casing.class
combine_consecutive_issets hygiene.separateIssets
combine_consecutive_unsets hygiene.separateUnsets
combine_nested_dirname hygiene.dirnameOfFile
compact_nullable_type_declaration spacing.typeDeclaration
concat_space spacing.concatenation
constant_case casing.trueFalseNull
control_structure_braces braces.bracelessBody
control_structure_continuation_position braces.position.continuingKeyword
curly_braces_position braces.position.class, braces.position.function, braces.position.multilineSignature, braces.position.closure, braces.position.anonymousClass, braces.position.controlStructure, braces.emptyBody.anonymousClass, braces.singlelineClosure
declare_equal_normalize spacing.declare
declare_parentheses spacing.declare
declare_strict_types file.strictTypes.declaration, file.strictTypes.position
dir_constant hygiene.dirnameOfFile
elseif controlFlow.elseif
encoding file.bom
escape_implicit_backslashes literals.implicitBackslash
final_internal_class classes.internalClass.final
fully_qualified_strict_types qualification.class.otherNamespace, qualification.class.phpdoc, qualification.class.currentNamespace
full_opening_tag file.openingTag
function_declaration multiline.trailingComma.parameter, spacing.keyword, spacing.call, spacing.arrowFunction, spacing.anonymousFunction, spacing.padding.argument, spacing.padding.parameter, spacing.padding.closureUse, spacing.padding.controlStructure, spacing.padding.grouping
general_phpdoc_annotation_remove phpdoc.forbiddenAnnotations
get_class_to_class_keyword hygiene.classNameNotation.object
global_namespace_import qualification.function.optimized, qualification.class.global, qualification.function.global, qualification.constant.global, qualification.constant.optimized
group_import imports.grouping.class, imports.grouping.function, imports.grouping.constant
heredoc_indentation indentation.heredoc
heredoc_to_nowdoc literals.heredocWithoutInterpolation
include expressions.parenthesesAfterConstruct
increment_style expressions.assignment.increment
indentation_type indentation.unit
integer_literal_case casing.hexDigit
is_null hygiene.is_null
linebreak_after_opening_tag blankLines.afterOpeningTag
line_ending file.lineEnding
list_syntax literals.arraySyntax.list
logical_operators expressions.wordLogicalOperator
long_to_shorthand_operator expressions.assignment.targetInValue
lowercase_cast expressions.cast
lowercase_keywords casing.keyword
lowercase_static_reference casing.keyword
magic_constant_casing casing.magicConstant
method_argument_space multiline.items.argument, multiline.edges.argument
method_chaining_indentation indentation.chain
modernize_strpos upgrading.functions.substringFunctions
modernize_types_casting hygiene.conversionFunction
modern_serialization_methods upgrading.php.sleepAndWakeup
modifier_keywords classes.modifiers.order, classes.visibility.constant, classes.visibility.property, classes.visibility.method, classes.visibility.interfaceMethod
multiline_promoted_properties multiline.spreadAlways
multiline_whitespace_before_semicolons multiline.semicolon
native_constant_invocation qualification.constant.global, qualification.constant.optimized
native_function_casing casing.function
native_function_invocation qualification.function.optimized, qualification.function.global
native_type_declaration_casing casing.type
new_expression_parentheses classes.instantiationWrapping
new_with_braces classes.emptyParentheses.instantiation, classes.emptyParentheses.anonymousClass
new_with_parentheses classes.emptyParentheses.instantiation, classes.emptyParentheses.anonymousClass
non_printable_character mistakes.invisibleCharacter
not_operator_without_successor_space spacing.logicalNot
not_operator_with_successor_space spacing.logicalNot
no_alias_functions hygiene.aliasFunctions
no_alternative_syntax braces.alternativeSyntax
no_blank_lines_after_class_opening blankLines.bodyStart.class, blankLines.bodyStart.anonymousClass
no_blank_lines_after_phpdoc blankLines.afterPhpdoc
no_break_comment controlFlow.switch.fallThroughComment
no_closing_tag file.closingTagAtEnd
no_empty_comment comments.empty
no_empty_phpdoc phpdoc.empty
no_empty_statement controlFlow.emptyStatement
no_leading_import_slash imports.leadingBackslash
no_leading_namespace_whitespace indentation.unit
no_multiple_statements_per_line file.statementsPerLine
no_null_property_initialization classes.untypedPropertyNullDefault
no_redundant_readonly_property classes.modifiers.implied
no_short_bool_cast expressions.doubleNegation
no_singleline_whitespace_before_semicolons spacing.semicolon.before
no_spaces_after_function_name spacing.call
no_spaces_around_offset spacing.padding.offset
no_spaces_inside_parenthesis spacing.padding.argument, spacing.padding.parameter, spacing.padding.closureUse, spacing.padding.controlStructure, spacing.padding.grouping
no_space_around_double_colon spacing.doubleColon
no_superfluous_elseif controlFlow.elseifAfterReturn
no_superfluous_phpdoc_tags phpdoc.annotation.nativeTypeOnly
no_trailing_comma_in_singleline multiline.trailingComma.array, multiline.trailingComma.argument, multiline.trailingComma.import, multiline.trailingComma.list
no_trailing_whitespace file.trailingWhitespace
no_trailing_whitespace_in_comment file.trailingWhitespace
no_trailing_whitespace_in_string mistakes.trailingWhitespaceInString
no_unneeded_braces braces.bareStatementGroup
no_unneeded_control_parentheses expressions.parenthesesAfterConstruct
no_unneeded_curly_braces braces.bareStatementGroup
no_unneeded_final_method classes.modifiers.implied
no_unneeded_import_alias imports.aliasEqualToName
no_unreachable_default_argument_value functions.unreachableParameterDefault
no_unused_imports imports.unused
no_useless_concat_operator literals.concatenatedLiterals
no_useless_else controlFlow.elseAfterReturn
no_useless_return functions.trailingBareReturn
no_whitespace_before_comma_in_array spacing.comma, spacing.alignment.comma
no_whitespace_in_blank_line file.trailingWhitespace
nullable_type_declaration types.nullable
nullable_type_declaration_for_default_null_value upgrading.php.implicitNullable
numeric_literal_separator literals.digitSeparator.integer, literals.digitSeparator.fraction
object_operator_without_whitespace spacing.objectOperator
octal_notation upgrading.syntax.octalPrefix
operator_linebreak multiline.operatorPosition.condition, multiline.operatorPosition.comparison, multiline.operatorPosition.logical, multiline.operatorPosition.concatenation, multiline.operatorPosition.arithmetic, multiline.operatorPosition.bitwise, multiline.operatorPosition.coalesce, multiline.operatorPosition.pipe, multiline.operatorPosition.ternary
ordered_class_elements classes.members.order
ordered_imports imports.order.kinds, imports.order.names, imports.order.caseSensitive
ordered_types types.nullPosition, types.unionOrder
PhpCsFixerCustomFixers/commented_out_function mistakes.debugOutput, mistakes.debugOutputFunctions
PhpCsFixerCustomFixers/comment_surrounded_by_spaces spacing.comment.marker
PhpCsFixerCustomFixers/declare_after_opening_tag file.strictTypes.position
PhpCsFixerCustomFixers/no_leading_slash_in_global_namespace qualification.leadingBackslash, imports.leadingBackslash
PhpCsFixerCustomFixers/no_superfluous_concatenation literals.concatenatedLiterals, literals.emptyStringConcatenation
PhpCsFixerCustomFixers/no_useless_dirname_call hygiene.dirnameOfFile
PhpCsFixerCustomFixers/no_useless_strlen hygiene.strlenEmptyTest
PhpCsFixerCustomFixers/numeric_literal_separator literals.digitSeparator.integer, literals.digitSeparator.fraction
PhpCsFixerCustomFixers/phpdoc_array_style phpdoc.types.array
PhpCsFixerCustomFixers/phpdoc_type_list phpdoc.types.builtin, phpdoc.types.array
phpdoc_array_type phpdoc.types.array
phpdoc_indent phpdoc.stars
phpdoc_line_span phpdoc.property.lineSpan
phpdoc_list_type phpdoc.types.builtin, phpdoc.types.array
phpdoc_no_access phpdoc.forbiddenAnnotations
phpdoc_no_duplicate_types phpdoc.types.duplicate
phpdoc_no_package phpdoc.forbiddenAnnotations
phpdoc_no_useless_inheritdoc phpdoc.inheritdocOnly
phpdoc_readonly_class_comment_to_keyword upgrading.phpdoc.readonly
phpdoc_scalar phpdoc.types.builtin
phpdoc_tag_casing phpdoc.annotation.casing
phpdoc_to_param_type types.declaration.parameter
phpdoc_to_property_type types.declaration.property
phpdoc_to_return_type types.declaration.return
phpdoc_trim phpdoc.blankLines
phpdoc_trim_consecutive_blank_line_separation phpdoc.blankLines
phpdoc_types phpdoc.types.builtin
phpdoc_types_no_duplicates phpdoc.types.duplicate
phpdoc_types_order phpdoc.types.nullPosition, phpdoc.types.unionOrder
protected_to_private classes.protectedInEnum, classes.protectedInFinalClass
regular_callable_call hygiene.call_user_func
return_type_declaration spacing.typeDeclaration
self_accessor qualification.currentClass
self_static_accessor qualification.staticInFinalClass
set_type_to_cast hygiene.settype
short_scalar_cast expressions.cast
simple_to_complex_string_variable upgrading.php.dollarBraceInterpolation
simplified_if_return controlFlow.ifReturningTrueFalse
single_blank_line_at_eof file.finalLineEndings
single_class_element_per_statement classes.members.grouping.constant, classes.members.grouping.property
single_import_per_statement imports.grouping.class, imports.grouping.function, imports.grouping.constant
single_line_after_imports blankLines.afterImports, blankLines.beforeDeclaration
single_line_comment_spacing spacing.comment.marker
single_line_comment_style comments.singleline
single_line_empty_body braces.emptyBody.class, braces.emptyBody.function, braces.emptyBody.closure, braces.emptyBody.anonymousClass
single_quote literals.quotes
single_space_around_construct spacing.keyword
single_trait_insert_per_statement classes.members.grouping.traitUse
spaces_inside_parentheses spacing.padding.argument, spacing.padding.parameter, spacing.padding.closureUse, spacing.padding.controlStructure, spacing.padding.grouping
space_after_semicolon spacing.semicolon.after
standardize_increment expressions.assignment.addingOne
standardize_not_equals expressions.comparison.notEquals
statement_indentation indentation.unit
static_lambda functions.staticClosure
static_private_method classes.staticMethod
strict_comparison expressions.comparison.loose
strict_param mistakes.strictArgument
string_implicit_backslashes literals.implicitBackslash
string_length_to_empty hygiene.strlenEmptyTest
switch_case_semicolon_to_colon upgrading.php.caseSemicolon
switch_case_space spacing.switchCase
switch_continue_to_break mistakes.continueInSwitch
ternary_operator_spaces spacing.ternary, spacing.alignment.ternary
ternary_to_elvis_operator expressions.ternary.short
ternary_to_null_coalescing expressions.coalesce
trailing_comma_in_multiline multiline.trailingComma.array
trim_array_spaces spacing.padding.array, spacing.padding.list
types_spaces spacing.typeDeclaration
type_declaration_spaces spacing.typeDeclaration
unary_operator_spaces spacing.unaryOperator, spacing.logicalNot
use_arrow_functions functions.arrowFunction.oneExpression
visibility_required classes.modifiers.order, classes.visibility.constant, classes.visibility.property, classes.visibility.method, classes.visibility.interfaceMethod
void_return types.declaration.return, types.declaration.anonymousFunction
whitespace_after_comma_in_array spacing.comma, spacing.alignment.comma
yoda_style expressions.comparison.yoda

Show on GitHub · Report a problem with this page on GitHub · Nov 2, 2026