【问题标题】:php-cs-fixer: need more information on using fix --level optionphp-cs-fixer:需要更多关于使用 fix --level 选项的信息
【发布时间】:2015-07-02 13:38:17
【问题描述】:

好的,我知道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 

我知道psr0psr1psr2 级别保持指定的编码标准。

但我想知道--level=symfony 提供什么以及该编码标准与psr2 有何不同。

如果我们根本不提供--level 选项。是否默认假设--level=psr2

【问题讨论】:

  • 我认为--level=symfony 将是一个可以使用的编码标准?
  • 是的,我知道。但是,我想知道它提供了哪些额外的东西,或者它与 PSR2 有何不同?

标签: php symfony coding-style psr-2


【解决方案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 - 文档块和文档元素之间不应有空行。
  • object_operator - 对象 T_OBJECT_OPERATOR 前后不应有空格。
  • operators_spaces - 二元运算符应至少有一个空格。
  • phpdoc_indent - Docblocks 应该有与文档主题相同的缩进。
  • 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 - 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 - 在经典元素中,“self”应该优先于类名本身。
  • single_array_no_trailing_comma - PHP 单行数组不应有尾随逗号。
  • single_blank_line_before_namespace - 在命名空间声明之前应该正好有一个空行。
  • single_quote - 将简单字符串的双引号转换为单引号。
  • spaces_before_semicolon - 关闭分号前的单行空格是
  • spaces_cast - 转换和变量之间应该有一个空格。
  • standardize_not_equal - 将所有 替换为 !=。
  • ternary_spaces - 标准化三元运算符周围的空格。
  • trim_array_spaces - 数组的格式应类似于函数/方法参数,没有前导或尾随单行空格。
  • unalign_double_arrow - 取消对齐双箭头符号。
  • unalign_equals - 不对齐等于符号。
  • unary_operators_spaces - 一元运算符应放置在其操作数附近。
  • unused_use - 必须删除未使用的 use 语句。
  • whitespacy_lines - 删除空行末尾的尾随空格。

【讨论】:

    【解决方案2】:

    这里是 a good blog post 使用 php-cs-fixer ,这意味着如果未提供 --level 选项,默认情况下它使用 psr2 修复程序。

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

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

    php-cs-fixer README on github 还提供了一些关于在 PSR-0、PSR-1、PSR-2 和 symfony 中运行的过滤器的信息。

    【讨论】:

      【解决方案3】:

      现在是 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

      【讨论】:

      • 如果您能详细说明这个新命令以及链接,将会更有帮助。
      • 我已经添加了我能找到的所有信息 + 屏幕截图和描述,它的作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      相关资源
      最近更新 更多