Uncaught Error: Call to undefined method PhpCsFixer\Config::create()
Closed this issue ยท 6 comments
Bug report
I got issue
Uncaught Error: Call to undefined method PhpCsFixer\Config::create()
when try run php-cs-fixer last versions
my environment is
PHP version: 7.4.15
PHP CS Fixer: 3.0.0
Command is: php-cs-fixer fix --config="./.php-cs-fixer.dist.php"
And this is .php-cs-fixer.dits.php
file content
<?php
use PhpCsFixer\Config;
use PhpCsFixer\Finder;
$rules = [
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => [
'default' => 'single_space',
'operators' => ['=>' => null]
],
'blank_line_after_namespace' => true,
'blank_line_after_opening_tag' => true,
'blank_line_before_statement' => [
'statements' => ['return']
],
'braces' => true,
'cast_spaces' => true,
'class_attributes_separation' => [
'elements' => ['method']
],
'class_definition' => true,
'concat_space' => [
'spacing' => 'none'
],
'declare_equal_normalize' => true,
'elseif' => true,
'encoding' => true,
'full_opening_tag' => true,
'fully_qualified_strict_types' => true, // added by Shift
'function_declaration' => true,
'function_typehint_space' => true,
'heredoc_to_nowdoc' => true,
'include' => true,
'increment_style' => ['style' => 'post'],
'indentation_type' => true,
'linebreak_after_opening_tag' => true,
'line_ending' => true,
'lowercase_cast' => true,
'lowercase_constants' => true,
'lowercase_keywords' => true,
'lowercase_static_reference' => true, // added from Symfony
'magic_method_casing' => true, // added from Symfony
'magic_constant_casing' => true,
'method_argument_space' => true,
'native_function_casing' => true,
'no_alias_functions' => true,
'no_extra_blank_lines' => [
'tokens' => [
'extra',
'throw',
'use',
'use_trait',
]
],
'no_blank_lines_after_class_opening' => true,
'no_blank_lines_after_phpdoc' => true,
'no_closing_tag' => true,
'no_empty_phpdoc' => true,
'no_empty_statement' => true,
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_mixed_echo_print' => [
'use' => 'echo'
],
'no_multiline_whitespace_around_double_arrow' => true,
'multiline_whitespace_before_semicolons' => [
'strategy' => 'no_multi_line'
],
'no_short_bool_cast' => true,
'no_singleline_whitespace_before_semicolons' => true,
'no_spaces_after_function_name' => true,
'no_spaces_around_offset' => true,
'no_spaces_inside_parenthesis' => true,
'no_trailing_comma_in_list_call' => true,
'no_trailing_comma_in_singleline_array' => true,
'no_trailing_whitespace' => true,
'no_trailing_whitespace_in_comment' => true,
'no_unneeded_control_parentheses' => true,
'no_unreachable_default_argument_value' => true,
'no_useless_return' => true,
'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true,
'normalize_index_brace' => true,
'not_operator_with_successor_space' => true,
'object_operator_without_whitespace' => true,
'ordered_imports' => ['sortAlgorithm' => 'alpha'],
'phpdoc_indent' => true,
'phpdoc_inline_tag' => true,
'phpdoc_no_access' => true,
'phpdoc_no_package' => true,
'phpdoc_no_useless_inheritdoc' => true,
'phpdoc_scalar' => true,
'phpdoc_single_line_var_spacing' => true,
'phpdoc_summary' => true,
'phpdoc_to_comment' => true,
'phpdoc_trim' => true,
'phpdoc_types' => true,
'phpdoc_var_without_name' => true,
'psr4' => true,
'self_accessor' => true,
'short_scalar_cast' => true,
'simplified_null_return' => false, // disabled by Shift
'single_blank_line_at_eof' => true,
'single_blank_line_before_namespace' => true,
'single_class_element_per_statement' => true,
'single_import_per_statement' => true,
'single_line_after_imports' => true,
'single_line_comment_style' => [
'comment_types' => ['hash']
],
'single_quote' => true,
'space_after_semicolon' => true,
'standardize_not_equals' => true,
'switch_case_semicolon_to_colon' => true,
'switch_case_space' => true,
'ternary_operator_spaces' => true,
'trailing_comma_in_multiline_array' => true,
'trim_array_spaces' => true,
'unary_operator_spaces' => true,
'visibility_required' => [
'elements' => ['method', 'property']
],
'whitespace_after_comma_in_array' => true,
'@PSR1' => true,
'@PSR2' => true,
'phpdoc_align' => ['align'=>'left'],
'yoda_style' => null,
'array_indentation' => true,
];
$finder = Finder::create()
->in([
__DIR__ . '/app',
__DIR__ . '/config',
__DIR__ . '/database',
__DIR__ . '/resources',
__DIR__ . '/routes',
__DIR__ . '/tests',
])
->name('*.php')
->notName('*.blade.php')
->ignoreDotFiles(true)
->ignoreVCS(true);
return Config::create()
->setFinder($finder)
->setRules($rules)
->setRiskyAllowed(true)
->setUsingCache(true);
Code snippet that reproduces the problem
return Config::create()
->setFinder($finder)
->setRules($rules)
->setRiskyAllowed(true)
->setUsingCache(true);
When run command above. returned message is
Fatal error: Uncaught Error: Call to undefined method PhpCsFixer\Config::create() in C:\laragon\www\myapp\.php-cs-fixer.dist.php:147
Stack trace:
#0 C:\Users\hp\AppData\Roaming\Composer\vendor\friendsofphp\php-cs-fixer\src\Console\ConfigurationResolver.php(836): include()
#1 C:\Users\hp\AppData\Roaming\Composer\vendor\friendsofphp\php-cs-fixer\src\Console\ConfigurationResolver.php(229): PhpCsFixer\Console\ConfigurationResolver::separatedContextLessInclude('C:\\laragon\\www\\...')
#2 C:\Users\hp\AppData\Roaming\Composer\vendor\friendsofphp\php-cs-fixer\src\Console\ConfigurationResolver.php(561): PhpCsFixer\Console\ConfigurationResolver->getConfig()
#3 C:\Users\hp\AppData\Roaming\Composer\vendor\friendsofphp\php-cs-fixer\src\Console\ConfigurationResolver.php(406): PhpCsFixer\Console\ConfigurationResolver->getFormat()
#4 C:\Users\hp\AppData\Roaming\Composer\vendor\friendsofphp\php-cs-fixer\src\Console\Command\FixCommand.php(258): PhpCsFixer\Console\ConfigurationResolver->getReporter()
#5 C:\Users\hp\AppData\Roaming\Composer\ in C:\laragon\www\waset\.php-cs-fixer.dist.php on line 147
Config::create()
has been deprecated in version 2.17 and removed in 3.0 (see upgrade guide). You should use the constructor instead.
@julienfalque ok. thank you.
but when try run with the new version. I got another error at-rule class_attributes_separation
'class_attributes_separation' => [
'elements' => ['method']
],
message is
[class_attributes_separation] Invalid configuration: The option "elements" with value "method" is expected to be of type "array", but is of type "string".
This has been changed with version 3.0 as well: https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/3.0/doc/rules/class_notation/class_attributes_separation.rst
Thank you so much @julienfalque
Config::create()
has been deprecated in version 2.17 and removed in 3.0 (see upgrade guide). You should use the constructor instead.
Linked page of upgrade guide is down, branch 3.0 was removed...
See BC breaks of v3.0 here (hash url should always be avaliable).
at moment of posting the link, it was there.
for upgrade guide, I am promoting tag link normally: https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v3.0.0/UPGRADE-v3.md
maybe we should add the link to the warning? #6060