为什么要使用代码规范工具
- 代码审查是软件工程的最佳实践
- 代码规范需要反复强调
- 太多时间浪费在审核格式上而不是代码本身
- 这工作应该让机器来做
- 规范的价值在于:整齐划一,而不是完美
PHP Coding Standards Fixer 简介
- 作者:Fabien Potencier,creator of Symfony/PHP-FIG
- 开源:MIT license.
- defined in the PSR-optional parameters
- 环境要求:php5.6 以上版本
使用介绍
安装
$ composer global require friendsofphp/php-cs-fixer
$ export PATH="$PATH:$HOME/.composer/vendor/bin"(这是临时变量,需要加入系统全局变量,并赋予www-data 用户权限)
$ php-cs-fixer self-update (for PHAR)
composer update php-cs-fixer
使用
$ php-cs-fixer fix /path/to/dir fix 指定目录
$ php-cs-fixer fix /path/to/file fix 指定文件
$ php-cs-fixer fix /path/to/project --rules=@PSR2 使用 PSR2 规范fix
$ php-cs-fixer fix /path/to/code --dry-run 显示需要fix的文件,不修改文件内容
php-cs-fixer fix --config=.php_cs.dist -v 基于配置文件fix
cat foo.php | php php-cs-fixer.phar fix foo.php --diff - 对比 fix 前后的文件内容
代码格式化原理
配置说明
- 'array_syntax' => ['syntax' => 'short'], 数组定义方式(array() or []),默认 long(array())
- 'binary_operator_spaces'=>['align_double_arrow' => true, 'align_equals' => true],
align_double_arrow (false, null, true): whether to apply, remove or ignore double arrows alignment; defaults to false 双箭头对齐 - align_equals (false, null, true): whether to apply, remove or ignore equals alignment; defaults to false 等号对其
- 'combine_consecutive_unsets' => true, Calling unset on multiple items should be done in one call.
- 'concat_space'=> ["spacing"=> "one"] Concatenation should be spaced according configuration. 默认none,demo:'a'.'b',one:'a' . 'b'
- 'header_comment' => ['header' => $header],Add, replace or remove header comment. 类文件注释
- 'no_short_echo_tag' => true, Replace short-echo <?= with long format <?php echo syntax.
- 'blank_line_before_return'=>true, return 前空一行
- 'no_useless_return' => true, There should not be an empty return statement at the end of a function.
- 'ordered_class_elements' => true, 类元素排序
- 'ordered_imports' => true,use 语句排序
- 'phpdoc_add_missing_param_annotation' => true, phpdoc 添加缺失的注解
- 'no_trailing_comma_in_list_call'=>true,单行数组删除最后一个逗号
- 'strict_comparison' => false,严格比较
完整的配置说明及示例请查看php-cs-fixer-configurator
输出码说明
- 0 OK.
- 1 General error (or PHP minimal requirement not matched).
- 4 Some files have invalid syntax (only in dry-run mode).
- 8 Some files need fixing (only in dry-run mode).
- 16 Configuration error of the application.
- 32 Configuration error of a Fixer.
- 64 Exception raised within the application.
(applies to exit codes of the fix command only)
网友评论