verkkokauppacom / php-cs-fixer
自动修复Symfony编码标准的脚本
Requires
- php: >=5.3.6
- sebastian/diff: 1.1.*
- symfony/console: ~2.1
- symfony/filesystem: ~2.1
- symfony/finder: ~2.1
This package is not auto-updated.
Last update: 2024-09-24 06:16:44 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 项目来说)。