php-cs-fixer:需要更多关于使用 fix --level 选项的信息
php-cs-fixer: need more information on using fix --level option
好的,我知道 php-cs-fixer
允许对编码标准进行以下级别的修复:
php php-cs-fixer.phar fix /path/to/project --level=psr0
php php-cs-fixer.phar fix /path/to/project --level=psr1
php php-cs-fixer.phar fix /path/to/project --level=psr2
php php-cs-fixer.phar fix /path/to/project --level=symfony
我知道 psr0
、psr1
、psr2
级别保持指定的编码标准。
但我想知道 --level=symfony
提供了什么以及该编码标准与 psr2
有何不同。
此外,如果我们根本不提供 --level
选项。默认情况下是否假设 --level=psr2
?
正如我从该文档中看到的 https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/1.8/README.rst 它执行此过滤器列表:
- blankline_after_open_tag - 确保在 PHP 打开标签的同一行上没有代码,并且后面跟一个空行。
- concat_without_spaces - 应该在没有 space 的情况下使用串联。
- double_arrow_multiline_whitespaces - 运算符=>不应该被多行白spaces包围。
- duplicate_semicolon - 删除重复的分号。
- empty_return - 一个 return 声明希望 return 什么都不应该只是 "return".
- extra_empty_lines - 删除多余的空行。
- include - 包含和文件路径应该用一个 space 分开。文件路径不应放在括号内。
- join_function - 应该使用内爆函数而不是连接函数。
- list_commas - 删除列表函数调用中的尾随逗号。
- multiline_array_trailing_comma - PHP 多行数组应该有尾随逗号。
- namespace_no_leading_whitespace - 名称space 声明行不应包含前导白色space。
- new_with_braces - 所有使用 new 关键字创建的实例后面都必须跟大括号。
- no_blank_lines_after_class_opening - class 大括号后不应有空行。
- no_empty_lines_after_phpdocs - 文档块和文档元素之间不应有空行。
- object_operator - 在对象 T_OBJECT_OPERATOR.
之前或之后不应有 space
- operators_spaces - 二元运算符应至少包含一个 space.
- phpdoc_indent - 文档块的缩进应与记录的主题相同。
- phpdoc_no_access - @access 注释应该从 phpdocs 中省略。
- phpdoc_no_empty_return - @return void 和@return 空注释应该从 phpdocs 中省略。
- phpdoc_no_package - @package 和 @subpackage 注释应该从 phpdocs 中省略。
- phpdoc_params - @param、@throws、@return、@var 和 @type phpdoc 标签的所有项目必须垂直对齐。
- phpdoc_scalar - 标量类型应始终以相同的形式编写。 "int",不是"integer"; "bool",不是"boolean"; "float",不是 "real" 或 "double"。
- phpdoc_separation - phpdocs 中的注释应分组在一起,以便相同类型的注释紧跟在一起,不同类型的注释由一个空行分隔。
- phpdoc_short_description - Phpdocs 简短描述应以句号、感叹号或问号结尾。
- phpdoc_to_comment - 文档块只能用于结构元素。
- phpdoc_trim - Phpdocs 应该以内容开始和结束,不包括文档块的第一行和最后一行。
- phpdoc_type_to_var - @type 应始终写为 @var.
- phpdoc_var_without_name - @var 和@type 注释不应包含变量名。
- remove_leading_slash_use - 删除 use 子句中的前导斜杠。
- remove_lines_between_uses - 删除 use 语句之间的换行符。
- return - 一个空换行符应该在 return 语句之前。
- self_accessor - 在 classy 元素中 "self" 应该优先于 class 名称本身。
- single_array_no_trailing_comma - PHP 单行数组不应有尾随逗号。
- single_blank_line_before_namespace - namespace 声明前应该只有一个空行。
- single_quote - 将简单字符串的双引号转换为单引号。
- spaces_before_semicolon - 单行白色space 前分号为
- spaces_cast - 一个 space 应该在 cast 和 variable 之间。
- standardize_not_equal - 将所有 <> 替换为 !=.
- ternary_spaces - 围绕三元运算符标准化 spaces。
- trim_array_spaces - 数组的格式应类似于 function/method 参数,没有前导或尾随单行 space.
- unalign_double_arrow - 不对齐双箭头符号。
- unalign_equals - 不对齐等于符号。
- unary_operators_spaces - 一元运算符应该放在它们的操作数附近。
- unused_use - 必须删除未使用的 use 语句。
- whitespacy_lines - 删除空白行末尾的尾随白色space。
这里是关于使用 php-cs-fixer
的 a good blog post,这里暗示如果未提供 --level
选项,默认情况下它使用 psr2
修复程序。
但是,如果我们明确地通过 --level=symfony
它 运行 一些 “附加”检查,这些检查针对 Symfony 并超越 PSR2
By default, it runs “all PSR-2 fixers and some additional ones.” You
can toggle the level you want to run with the --level flag, which I’ll
be setting to psr2 so that the “additional” checks, which are targeted
at Symfony and go above-and-beyond PSR2, don’t throw me off. (It runs
the entire stack by default, which is called level “symfony” and
includes things like “Align equals signs in subsequent lines”).
php-cs-fixer README on github 还提供了一些关于 PSR-0、PSR-1、PSR-2 和 symfony 中 运行 过滤器的信息。
现在 2017 年,从版本 2 开始,您可以使用 describe
命令。
vendor/bin/php-cs-fixer describe @PSR2
它向您显示规则集中的当前修复程序及其名称和描述:
所以对于 "Symfony" 规则集它看起来像:
vendor/bin/php-cs-fixer describe @Symfony
对于像这样的单个规则:
vendor/bin/php-cs-fixer describe some_rule
级别更改为@Rule
另请注意 level
选项已弃用。作为规则使用它,只需使用 @
前缀即可。
vendor/bin/php-cs-fixer --rules=@PSR2
如果您要查找更多详细信息,请参阅 related PR。
好的,我知道 php-cs-fixer
允许对编码标准进行以下级别的修复:
php php-cs-fixer.phar fix /path/to/project --level=psr0
php php-cs-fixer.phar fix /path/to/project --level=psr1
php php-cs-fixer.phar fix /path/to/project --level=psr2
php php-cs-fixer.phar fix /path/to/project --level=symfony
我知道 psr0
、psr1
、psr2
级别保持指定的编码标准。
但我想知道 --level=symfony
提供了什么以及该编码标准与 psr2
有何不同。
此外,如果我们根本不提供 --level
选项。默认情况下是否假设 --level=psr2
?
正如我从该文档中看到的 https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/1.8/README.rst 它执行此过滤器列表:
- blankline_after_open_tag - 确保在 PHP 打开标签的同一行上没有代码,并且后面跟一个空行。
- concat_without_spaces - 应该在没有 space 的情况下使用串联。
- double_arrow_multiline_whitespaces - 运算符=>不应该被多行白spaces包围。
- duplicate_semicolon - 删除重复的分号。
- empty_return - 一个 return 声明希望 return 什么都不应该只是 "return".
- extra_empty_lines - 删除多余的空行。
- include - 包含和文件路径应该用一个 space 分开。文件路径不应放在括号内。
- join_function - 应该使用内爆函数而不是连接函数。
- list_commas - 删除列表函数调用中的尾随逗号。
- multiline_array_trailing_comma - PHP 多行数组应该有尾随逗号。
- namespace_no_leading_whitespace - 名称space 声明行不应包含前导白色space。
- new_with_braces - 所有使用 new 关键字创建的实例后面都必须跟大括号。
- no_blank_lines_after_class_opening - class 大括号后不应有空行。
- no_empty_lines_after_phpdocs - 文档块和文档元素之间不应有空行。
- object_operator - 在对象 T_OBJECT_OPERATOR. 之前或之后不应有 space
- operators_spaces - 二元运算符应至少包含一个 space.
- phpdoc_indent - 文档块的缩进应与记录的主题相同。
- phpdoc_no_access - @access 注释应该从 phpdocs 中省略。
- phpdoc_no_empty_return - @return void 和@return 空注释应该从 phpdocs 中省略。
- phpdoc_no_package - @package 和 @subpackage 注释应该从 phpdocs 中省略。
- phpdoc_params - @param、@throws、@return、@var 和 @type phpdoc 标签的所有项目必须垂直对齐。
- phpdoc_scalar - 标量类型应始终以相同的形式编写。 "int",不是"integer"; "bool",不是"boolean"; "float",不是 "real" 或 "double"。
- phpdoc_separation - phpdocs 中的注释应分组在一起,以便相同类型的注释紧跟在一起,不同类型的注释由一个空行分隔。
- phpdoc_short_description - Phpdocs 简短描述应以句号、感叹号或问号结尾。
- phpdoc_to_comment - 文档块只能用于结构元素。
- phpdoc_trim - Phpdocs 应该以内容开始和结束,不包括文档块的第一行和最后一行。
- phpdoc_type_to_var - @type 应始终写为 @var.
- phpdoc_var_without_name - @var 和@type 注释不应包含变量名。
- remove_leading_slash_use - 删除 use 子句中的前导斜杠。
- remove_lines_between_uses - 删除 use 语句之间的换行符。
- return - 一个空换行符应该在 return 语句之前。
- self_accessor - 在 classy 元素中 "self" 应该优先于 class 名称本身。
- single_array_no_trailing_comma - PHP 单行数组不应有尾随逗号。
- single_blank_line_before_namespace - namespace 声明前应该只有一个空行。
- single_quote - 将简单字符串的双引号转换为单引号。
- spaces_before_semicolon - 单行白色space 前分号为
- spaces_cast - 一个 space 应该在 cast 和 variable 之间。
- standardize_not_equal - 将所有 <> 替换为 !=.
- ternary_spaces - 围绕三元运算符标准化 spaces。
- trim_array_spaces - 数组的格式应类似于 function/method 参数,没有前导或尾随单行 space.
- unalign_double_arrow - 不对齐双箭头符号。
- unalign_equals - 不对齐等于符号。
- unary_operators_spaces - 一元运算符应该放在它们的操作数附近。
- unused_use - 必须删除未使用的 use 语句。
- whitespacy_lines - 删除空白行末尾的尾随白色space。
这里是关于使用 php-cs-fixer
的 a good blog post,这里暗示如果未提供 --level
选项,默认情况下它使用 psr2
修复程序。
但是,如果我们明确地通过 --level=symfony
它 运行 一些 “附加”检查,这些检查针对 Symfony 并超越 PSR2
By default, it runs “all PSR-2 fixers and some additional ones.” You can toggle the level you want to run with the --level flag, which I’ll be setting to psr2 so that the “additional” checks, which are targeted at Symfony and go above-and-beyond PSR2, don’t throw me off. (It runs the entire stack by default, which is called level “symfony” and includes things like “Align equals signs in subsequent lines”).
php-cs-fixer README on github 还提供了一些关于 PSR-0、PSR-1、PSR-2 和 symfony 中 运行 过滤器的信息。
现在 2017 年,从版本 2 开始,您可以使用 describe
命令。
vendor/bin/php-cs-fixer describe @PSR2
它向您显示规则集中的当前修复程序及其名称和描述:
所以对于 "Symfony" 规则集它看起来像:
vendor/bin/php-cs-fixer describe @Symfony
对于像这样的单个规则:
vendor/bin/php-cs-fixer describe some_rule
级别更改为@Rule
另请注意 level
选项已弃用。作为规则使用它,只需使用 @
前缀即可。
vendor/bin/php-cs-fixer --rules=@PSR2
如果您要查找更多详细信息,请参阅 related PR。