PHP-CS-Fixer:格式化你的PHP代码

简介

良好的代码规范可以提高代码可读性,团队沟通维护成本。最推荐大家遵守的是 php-fig(PHP Framework Interop Group) 组织定义的 PSR-1PSR-2 两个。不了解的同学可以先通过链接点击过去阅读下。

这个工具的作用就是按照 PSR-1PSR-2 的规范格式化你的代码。

安装

PHP需求:PHP最小版本5.3.6。

本地安装
安装很简单,下载php-cs-fixer.phar文件就行了。官方地址是:
http://get.sensiolabs.org/php-cs-fixer.phar

国内的朋友如果下载很慢,可以使用百度云:
链接: http://pan.baidu.com/s/1qWUTd5y 密码: yith

Composer方式安装
如果你还不了解Composer,请点击链接查看。

新建composer.json

{
    "require" :{
        "fabpot/php-cs-fixer":"*"
    },"config": {
        "secure-http": false
    }
}

运行:

composer update

稍等片刻,下载完成:目录生成了vendor文件夹。

设置全局:

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

注意,composer安装的与本地方式安装后调用的执行文件是不一样的。本地安装执行的是php-cs-fixer.phar;composer安装的执行的是php vendor\fabpot\php-cs-fixer\php-cs-fixer

homebrew安装

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

如何使用

命令行运行:

php-cs-fixer

会给出很多帮助提示。

使用 fix 指令修复文件夹或文件的代码风格

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

选项:

--format 输出文件格式,支持txt、xml
--verbose
--level 应用哪种PSR类型。支持psr0、psr1、psr2。默认是psr2
--dry-run 显示需要修复但是没有修复的代码
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

示例:

$ php php-cs-fixer.phar fix test.php

   1) test.php
Fixed all files in 0.290 seconds, 4.250 MB memory used

有一些要注意的地方是,php-cs-fixer 因为是在不破坏相容性的前提下修正的,所以有些 方法命名 的规则就无法修。不过比起手动修正,可以省下不少时间。

更多使用方式参见 Usage

使用.php_cs文件

在一些开源框架中都看到了 .php_cs 文件。这个文件便是php-cs-fixer的格式化配置。

官方是这么描述的:

Instead of using command line options to customize the fixer, you can save the configuration in a .php_cs file in the root directory of your project. 

如何使用.php_cs

$ php php-cs-fixer fix --config-file .php_cs  test.php

Loaded config from ".php_cs"
   1) test.php
Fixed all files in 0.242 seconds, 4.250 MB memory used

使用--config-file加载.php_cs文件。文件内容详情见文末。

升级

php php-cs-fixer.phar self-update

或者

$ sudo php-cs-fixer self-update

composer方式:

$ ./composer.phar global update fabpot/php-cs-fixer

brew方式:

$ brew upgrade php-cs-fixer

StyleCI介绍

当我们使用 PHP-CS-Fixer 让我们现有的代码规范化之后,我们怎么确保以后开发的代码,以及别人 pr 的代码都能正确的符合代码风格规范呢?

StyleCI 是一个 Laravel5 项目,功能实现也是由 PHP-CS-Fixer 驱动。

它可以自己分析你项目的 pull request,并且在你 merge 前显示出分析的结果。

该工具没有具体使用过,下面是它的官网,感兴趣的同学可以看看。

官方网站:https://styleci.io/

相关资源

PHP Coding Standards Fixer--FriendsOfPHP
https://github.com/FriendsOfPHP/PHP-CS-Fixer

使用 PHP-CS-Fixer 自动规范化你的 PHP 代码_PHPHub - PHP & Laravel的中文社区
https://phphub.org/topics/547

现在写 PHP,你应该知道这些 - Scholer 的 PHP 之路 - SegmentFault
https://segmentfault.com/a/1190000003844380

Basic php-cs-fixer rules
https://github.com/XiaoLer/php-develop-standards/blob/master/php-cs-fixer-rules.md

.php_cs内容参考

<?php

$header = <<<EOF
This file is part of the PHP CS utility.

(c) Fabien Potencier <fabien@symfony.com>

This source file is subject to the MIT license that is bundled
with this source code in the file LICENSE.
EOF;

Symfony\CS\Fixer\Contrib\HeaderCommentFixer::setHeader($header);

return Symfony\CS\Config\Config::create()
    // use default SYMFONY_LEVEL and extra fixers:
    ->fixers(array(
        'header_comment',
        'long_array_syntax',
        'ordered_use',
        'php_unit_construct',
        'php_unit_strict',
        'strict',
        'strict_param',
    ))
    ->finder(
        Symfony\CS\Finder\DefaultFinder::create()
            ->exclude('Symfony/CS/Tests/Fixtures')
            ->in(__DIR__)
    )
;
时间: 2024-09-24 14:11:18

PHP-CS-Fixer:格式化你的PHP代码的相关文章

PHP CS Fixer —— PHP 代码标准修复工具

PHP CS Fixer 是代码标准修复工具,当你想把 PHP 编码标准定义为 PSR-1 和 PSR-2 文件标准时,它能修复你代码中的大部分问题. 如果你已经用 PHP_CodeSniffer 在你的代码中辨识编码问题,你应该知道,手动修复他们是件乏味的事情,尤其是在大型项目中.这个工具就是为解决这个麻烦而生的. 要求: PHP 最低要求 5.3.6版本 使用示例: fix 命令将尽可能地修复一个文件或目录中的编码标准问题. php php-cs-fixer.phar fix /path/t

java-如何完美个格式化jsp页面的代码?

问题描述 如何完美个格式化jsp页面的代码? MyEclipse 10 格式化jsp,出现错行,如何解决这个问题? 我按照网上说的去调整宽度但是没有效果 解决方案 下载安装AdobeDreamweaver

源代码格式化是如何实现的?有什么好的实现源代码格式化功能的开源代码?

问题描述 源代码格式化是如何实现的?有什么好的实现源代码格式化功能的开源代码? Sublime.VS.Eclipse等很多开发工具都提供了格式化代码的功能,那么如何实现这些功能呢?有没有开源的格式化代码可以参考阅读呢? 解决方案 读取源代码,解析成抽象语法树(ast),然后产生对应的缩进.如果是C#,用rolysn,sdk有例子.

php格式化json函数示例代码_php技巧

本文讲述了php格式化json函数的示例代码.分享给大家供大家参考,具体如下: <?php $arr = array("ret"=>0,"data"=>array('a' => 1, 'b' => '2', 'c' => 3, 'd' => 4, 'e' => 5)); $json = json_encode($arr); /** * Formats a JSON string for pretty printing

千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码_javascript技巧

最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持用逗号隔开 0-9位 逗号隔开 JS代码如下: 复制代码 代码如下: /**         * JS格式化         * @param number 要格式化的数字         * @param d [0-9]位 逗号隔开         */          function num

php number_format() 函数通过千位分组来格式化数字的实现代码_php技巧

定义和用法number_format() 函数通过千位分组来格式化数字. 语法number_format(number,decimals,decimalpoint,separator) 参数描述number 必需.要格式化的数字.如果未设置其他参数,则数字会被格式化为不带小数点且以逗号 (,) 作为分隔符. decimals可选.规定多少个小数.如果设置了该参数,则使用点号 (.) 作为小数点来格式化数字. decimalpoint可选.规定用作小数点的字符串. separator 可选.规定用

C# 格式化字符串的实现代码_C#教程

1 前言    如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString或者Standard Template Library(STL)的字符串类,那么你对String.Format方法肯定很熟悉.在C#中也经常使用这个方法来格式化字符串,比如下面这样: int x = 16; decimal y = 3.57m; string h = String.Format( "item {0}

json格式化显示样式js代码分享

最近开发中需要在页面展示json.特整理了下代码,送给大家,希望能帮到有同样需求的朋友们. 代码: <html> <script src="http://cdn.bootcss.com/jquery/3.0.0-rc1/jquery.min.js"></script> <body> <span class="result"></span> <script> //json格式化方法 参

用正则表达式格式化html标签的代码_正则表达式

复制代码 代码如下: <html> <head> </head> <body> <style> #x_edit{   height:320px;   width:540px;   border:1px solid #666666;   color:red;   filter:chroma(color="#0f0f0f");   background-color:#f0f0f0;   font-family:verdana;