8

好的,我知道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默认假设?

4

3 回答 3

4

现在在 2017 年,从版本 2 开始,您可以使用describecommand

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

如果您想了解更多详细信息,请参阅相关 PR

于 2017-05-03T05:52:58.547 回答
1

正如我从这个文档中看到的那样https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/1.8/README.rst它执行这个过滤器列表:

  • blankline_after_open_tag - 确保 PHP 开放标记所在的行没有代码,并且后面跟一个空白行。
  • concat_without_spaces - 应使用不带空格的连接。
  • double_arrow_multiline_whitespaces - 运算符 => 不应被多行空格包围。
  • duplicate_semicolon - 删除重复的分号。
  • empty_return - 希望不返回任何内容的 return 语句应该只是“return”。
  • extra_empty_lines - 删除多余的空行。
  • include - 包含和文件路径应该用一个空格分隔。文件路径不应放在括号内。
  • join_function - 应该使用 Implode 函数而不是 join 函数。
  • list_commas - 删除列表函数调用中的尾随逗号。
  • multiline_array_trailing_comma - PHP 多行数组应该有一个尾随逗号。
  • namespace_no_leading_whitespace - 命名空间声明行不应包含前导空格。
  • new_with_braces - 使用 new 关键字创建的所有实例必须后跟大括号。
  • no_blank_lines_after_class_opening - 类开头大括号后不应有空行。
  • no_empty_lines_after_phpdocs - docblock 和记录的元素之间不应有空行。
  • object_operator - 对象 T_OBJECT_OPERATOR 前后不应有空格。
  • operator_spaces - 二元运算符应至少有一个空格。
  • phpdoc_indent - 文档块应该具有与文档主题相同的缩进。
  • phpdoc_no_access - @access 注释应该从 phpdocs 中省略。
  • phpdoc_no_empty_return - @return void 和 @return null 注释应该从 phpdocs 中省略。
  • phpdoc_no_package - @package 和 @subpackage 注释应该从 phpdocs 中省略。
  • phpdoc_params - @param、@throws、@return、@var 和 @type phpdoc 标记的所有项目必须垂直对齐。
  • phpdoc_scalar - 标量类型应始终以相同的形式编写。“整数”,而不是“整数”;“布尔”,而不是“布尔”;“浮动”,而不是“真实”或“双重”。
  • phpdoc_separation - phpdoc 中的注解应该组合在一起,以便相同类型的注解紧跟在一起,不同类型的注解用一个空行分隔。
  • 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 - 在经典元素中,“self”应该优先于类名本身。
  • single_array_no_trailing_comma - PHP 单行数组不应有尾随逗号。
  • single_blank_line_before_namespace - 在命名空间声明之前应该正好有一个空行。
  • single_quote - 将简单字符串的双引号转换为单引号。
  • space_before_semicolon - 关闭分号前的单行空格是
  • space_cast - 转换和变量之间应该有一个空格。
  • standardize_not_equal - 将所有 <> 替换为 !=。
  • ternary_spaces - 标准化三元运算符周围的空间。
  • trim_array_spaces - 数组应该像函数/方法参数一样格式化,没有前导或尾随单行空格。
  • unalign_double_arrow - 取消对齐双箭头符号。
  • unalign_equals - 不对齐等于符号。
  • unary_operators_spaces - 一元运算符应放置在其操作数附近。
  • used_use - 必须删除未使用的 use 语句。
  • whitespacy_lines - 删除空行末尾的尾随空格。
于 2015-04-24T08:02:47.960 回答
1

这是一篇关于使用的好博客文章php-cs-fixer,这里暗示psr2如果--level未提供该选项,默认情况下它会使用修复程序。

但是,如果我们--level=symfony明确通过,它会运行一些“附加”检查,这些检查针对 Symfony,并超越 PSR2

默认情况下,它运行“所有 PSR-2 修复程序和一些额外的修复程序”。您可以使用 --level 标志切换您想要运行的级别,我将其设置为 psr2,以便针对 Symfony 并超越 PSR2 的“附加”检查不会抛出我离开。(它默认运行整个堆栈,称为“symfony”级别,包括“在后续行中对齐等号”等内容)。

此外,github 上的 php-cs-fixer README提供了有关在 PSR-0、PSR-1、PSR-2 和 symfony 中运行的过滤器的一些信息。

于 2016-02-21T12:15:16.150 回答