简介

良好的代码规范可以提高代码可读性,团队沟通维护成本。最推荐大家遵守的是 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__)
)
;

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

  1. Submine Text3格式化HTML/CSS/JS代码

    Submine Text3格式化HTML/CSS/JS代码需要安装插件,步骤如下: 1.打开菜单--->首选项---->Package Control,输入 install package ...

  2. 如何格式化被压缩的JS代码以方便阅读

    本文分两部分: 1.转载部分 2.个人补充部分 1.主题内容转载83,http://www.madeby83.com/unzip-the-js-code.html 我们经常可以看到一些网站,把所需的j ...

  3. Sublime text 3 如何格式化HTML/css/js代码

    Sublime Text 3 安装Package Control   原来Subl3安装Package Control很麻烦,现在简单的方法来了 一.简单的安装方法 使用Ctrl+`快捷键或者通过Vi ...

  4. JS数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)

    最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持 ...

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

    最近开发中需要在页面展示json.特整理了下代码,送给大家,希望能帮到有同样需求的朋友们. 代码: <html> <script src="http://cdn.bootc ...

  6. Sublime Text格式化HTML JS CSS代码

    Sublime Text是开发Hybrid应用的神器,但是有时候对糟糕的代码格式很懊恼,尤其是团队成员比较多,并且代码风格不是很统一的时候.幸好有可用的格式化插件,比较好用的就是HTML-CSS-JS ...

  7. vscode 如何格式化vue(template)html代码 , 保持标签属性不换行

    微软的vscode 真心强大 , electron 框架写的 , 用js写的桌面应用 , 有能力的话大家可以分析一下人家的源码 , 反正我是看不了 , 太牛掰了 在一次跟新后我发现莫名奇妙的些在组件( ...

  8. HTML-学习笔记(文本格式化,引用,计算机代码)

    HTML 可定义很多供格式化输出的元素,比如粗体和斜体字. <b>定义粗体字体 <p>这是一段<b>粗体字体</b>通过标签定义</p> & ...

  9. sublime text3格式化html,css,js代码

    需要安装HTML/CSS/JS prettify插件. 安装步骤:首选项 -> Package Control -> Install Package -> HTML-CSS-JS P ...

随机推荐

  1. 一句话的代码,从集合中找出第一个重复字符的方法javascript版。

    有的时候需求是这样的: 找出集合中第一个重复的字符所在的位置,刚才看了园内某自许为算法的代码,感觉非常之啰嗦故写了以下代码! 本人对神马算法之类的完全不懂,但那些伪算法家们也别出来装蒜.一句话:不要欺 ...

  2. MVC路由配置

    目录 URL Routing 的定义方式 示例准备 给片段变量定义默认值 定义静态片段 自定义片段变量 自定义片段变量的定义和取值 将自定义片段变量作为Action方法的参数 指定自定义片段变量为可选 ...

  3. kinect driver install (ubuntu 14.04 & ros-indigo)

    kinect driver 安装过程: 1.在ubuntu上安装kinect驱动比较繁琐,需要安装以下3个驱动包, OpenNI-Bin-Dev-Linux-x64-v1.5.7.10 NITE-Bi ...

  4. js跳转到新页面传参以及接收参数的方法

    1.传递参数: window.location.href = "./list.html?id="+id; 1.接收参数: (1)接收参数函数封装 function GetReque ...

  5. 怎么实现CSS限制字数,超出部份显示点点点.

    如何实现CSS限制字数,超出部份显示点点点... <div style="width:200px; white-space:nowrap;overflow:hidden;text-ov ...

  6. 安装和配置Mantis<项目管理工具>

    说明: 黑色加粗部分为配置文档修改或添加的内容,例如index.cgi意思为修改或添加index.cgi 红色加粗部分为操作控制而非直接输入,例如空格意思为此处需要按下空格键 一.介绍 Apache: ...

  7. viewpage滑动查看图片并再有缩略图预览

    首先看下效果图, 主要功能分为3大块 一是滑动查看,通过viewpage来实现,方法见 http://www.cnblogs.com/lovemo1314/p/6109312.html 二.点击放大 ...

  8. A very cool thing: Install MYSQL from source without root access on LINUX

    最近由于工作的需要,要在centos上安装MYSQL服务器.作为一名小兵中的小兵,当然是没有root权限的,为了能够使用mysql,只能使用源码安装了(因为binary安装方式似乎需要root acc ...

  9. 《python核心编程》笔记——文件的创建、读取和显示

    创建文件(makeTextFile.py)脚本提醒用户输入一个尚不存在的文件名,然后由用户输入文件每一行,最后将所有文本写入文本文件 #!/usr/bin/env python 'makeTextFi ...

  10. (转)深度分析Linux下双网卡绑定七种模式

    现在一般的企业都会 使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在 网卡产商也会出一些针对window ...