verkkokauppacom/php-cs-fixer

自动修复Symfony编码标准的脚本

安装次数: 29

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 9

Forks: 1,579

类型:应用程序

v0.4.0.1 2014-04-29 12:42 UTC

README

PHP编码标准修复工具在您想要遵循PSR-1和PSR-2文档中定义的PHP编码标准时,可以修复代码中的大多数问题。

如果您已经在代码中使用了PHP_CodeSniffer来识别编码标准问题,您知道手动修复它们是繁琐的,尤其是在大型项目中。此工具为您完成这项工作。

安装

本地

下载php-cs-fixer.phar文件并将其存储在您的计算机上的某个位置。

全局(手动)

您可以通过运行以下命令轻松地从系统上的任何位置访问php-cs-fixer

$ sudo wget http://get.sensiolabs.org/php-cs-fixer.phar -O /usr/local/bin/php-cs-fixer

或使用curl

$ sudo curl http://get.sensiolabs.org/php-cs-fixer.phar -o /usr/local/bin/php-cs-fixer

然后

$ sudo chmod a+x /usr/local/bin/php-cs-fixer

然后,只需运行php-cs-fixer

全局(Composer)

要安装PHP-CS-Fixer,请安装Composer并运行以下命令

$ ./composer.phar global require fabpot/php-cs-fixer @stable

然后,请确保您的PATH中包含~/.composer/vendor/bin,然后就可以使用了

export PATH="$PATH:$HOME/.composer/vendor/bin"

全局(homebrew)

PHP-CS-Fixer是homebrew-php项目的一部分。如果您还没有,请按照https://github.com/josegonzalez/homebrew-php中的安装说明进行操作。

$ brew tap josegonzalez/homebrew-php
$ brew install php-cs-fixer

更新

本地

self-update命令尝试更新php-cs-fixer本身

$ php php-cs-fixer.phar self-update

全局(手动)

您可以通过此命令更新php-cs-fixer

$ sudo php-cs-fixer self-update

全局(homebrew)

您可以通过此命令更新php-cs-fixer

$ brew upgrade php-cs-fixer

使用方法

fix命令尝试在一个给定的文件或目录上修复尽可能多的编码标准问题

php php-cs-fixer.phar fix /path/to/dir
php php-cs-fixer.phar fix /path/to/file

--level选项限制应用于项目的修复器

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=all

默认情况下,所有PSR-2修复器和一些附加的修复器都会运行。

--fixers选项允许您选择要应用的精确修复器(修复器名称必须用逗号分隔)

php php-cs-fixer.phar fix /path/to/dir --fixers=linefeed,short_tag,indentation

您还可以使用-name使用户方便地黑名单您不想使用的修复器

php php-cs-fixer.phar fix /path/to/dir --fixers=-short_tag,-indentation

--dry-run--verbose--diff的组合将显示建议修复的摘要,同时保持您的文件不变。

该命令还可以从标准输入读取,在这种情况下,它不会自动修复任何内容

cat foo.php | php php-cs-fixer.phar fix -v --diff -

从可用的修复器列表中选择

  • 缩进 [PSR-2] 代码必须使用4个空格进行缩进,而不是制表符。
  • 换行符 [PSR-2] 所有PHP文件都必须使用Unix LF(换行符)行结束。
  • 尾随空格 [PSR-2] 删除行末的尾随空格。
  • 未使用使用 [全部] 必须删除未使用的使用语句。
  • phpdoc_params [全部] @param phpdoc标签的所有项目必须垂直对齐。
  • 短标签 [PSR-1] PHP代码必须使用长<?php ?>标签或短echo <?= ?>标签;它不能使用其他标签变体。
  • 返回 [全部] return语句之前应该有一个空行。
  • 可见性 [PSR-2] 所有属性和方法必须声明可见性;抽象和final必须在可见性之前声明;static必须在可见性之后声明。
  • php_closing_tag [PSR-2] 只包含PHP的文件必须省略关闭的?>标签。
  • 花括号 [PSR-2] 类、接口、特质和方法的开花括号必须放在下一行,闭花括号必须放在主体之后的一行。控制结构的花括号必须放在同一行,闭花括号必须放在主体之后的一行。
  • 多余空行 [所有] 移除多余的空行。
  • 函数声明 [PSR-2] 函数声明中应正确放置空格。
  • 包含 [所有] 包含和文件路径之间应该用一个空格分隔。文件路径不应该放在方括号中。
  • 控制结构空格 [所有] 在以下位置应有一个空格:闭花括号和控制之间,控制和开括号之间,闭括号和开花括号之间。
  • psr0 [PSR-0] 类必须在与它们的命名空间匹配的路径中,至少在一个命名空间深度,并且类名应与文件名匹配。
  • elseif [PSR-2] 应使用关键字 elseif 而不是 else if,以便所有控制关键字看起来像单个单词。
  • eof_ending [PSR-2] 文件必须始终以一个空行换行符结束。

使用 --config 选项可以根据一些知名的目录结构自定义要分析的文件。

# For the Symfony 2.3+ branch
php php-cs-fixer.phar fix /path/to/sf23 --config=sf23

从可用的配置列表中选择。

  • 默认配置 默认配置。
  • magento Magento 应用程序的配置。
  • sf23 Symfony 2.3+ 分支的配置。

使用 --dry-run 选项显示需要修复的文件,但实际不会修改它们。

php php-cs-fixer.phar fix /path/to/code --dry-run

除了使用命令行选项自定义修复器之外,您还可以在项目根目录中保存配置到 .php_cs 文件中。该文件必须返回一个 SymfonyCSConfigInterface 实例,这使您能够配置修复器、文件和需要分析的目录。

<?php

$finder = Symfony\CS\Finder\DefaultFinder::create()
    ->exclude('somedir')
    ->in(__DIR__)
;

return Symfony\CS\Config\Config::create()
    ->fixers(array('indentation', 'elseif'))
    ->finder($finder)
;

您还可以使用黑名单而不是上面显示的白名单方法来使用修复器。以下示例显示了如何使用所有修复器,但不是 Psr0Fixer。注意修复器名称前面的额外 -

<?php

$finder = Symfony\CS\Finder\DefaultFinder::create()
    ->exclude('somedir')
    ->in(__DIR__)
;

return Symfony\CS\Config\Config::create()
    ->fixers(array('-Psr0Fixer'))
    ->finder($finder)
;

使用 --config-file 选项可以指定 .php_cs 文件的路径。

助手

存在针对以下内容的专用插件

贡献

该工具附带了一些内置的修复器和查找器,但每个人都非常欢迎贡献更多

修复器

修复器 是一个尝试修复一个 CS 问题(Fixer 类必须实现 FixerInterface)的类。

配置

配置 了解 CS 级别以及工具在运行在项目目录时必须扫描的文件和目录。这对于遵循知名目录结构的项目很有用(例如,对于 Symfony 项目来说)。