PHP-CS-Fixer:格式化你的PHP代码
简介
良好的代码规范可以提高代码可读性,团队沟通维护成本。最推荐大家遵守的是 php-fig(PHP Framework Interop Group) 组织定义的 PSR-1 、 PSR-2 两个。不了解的同学可以先通过链接点击过去阅读下。
这个工具的作用就是按照 PSR-1 和 PSR-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代码的更多相关文章
- Submine Text3格式化HTML/CSS/JS代码
Submine Text3格式化HTML/CSS/JS代码需要安装插件,步骤如下: 1.打开菜单--->首选项---->Package Control,输入 install package ...
- 如何格式化被压缩的JS代码以方便阅读
本文分两部分: 1.转载部分 2.个人补充部分 1.主题内容转载83,http://www.madeby83.com/unzip-the-js-code.html 我们经常可以看到一些网站,把所需的j ...
- Sublime text 3 如何格式化HTML/css/js代码
Sublime Text 3 安装Package Control 原来Subl3安装Package Control很麻烦,现在简单的方法来了 一.简单的安装方法 使用Ctrl+`快捷键或者通过Vi ...
- JS数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)
最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改 之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持 ...
- json格式化显示样式js代码分享
最近开发中需要在页面展示json.特整理了下代码,送给大家,希望能帮到有同样需求的朋友们. 代码: <html> <script src="http://cdn.bootc ...
- Sublime Text格式化HTML JS CSS代码
Sublime Text是开发Hybrid应用的神器,但是有时候对糟糕的代码格式很懊恼,尤其是团队成员比较多,并且代码风格不是很统一的时候.幸好有可用的格式化插件,比较好用的就是HTML-CSS-JS ...
- vscode 如何格式化vue(template)html代码 , 保持标签属性不换行
微软的vscode 真心强大 , electron 框架写的 , 用js写的桌面应用 , 有能力的话大家可以分析一下人家的源码 , 反正我是看不了 , 太牛掰了 在一次跟新后我发现莫名奇妙的些在组件( ...
- HTML-学习笔记(文本格式化,引用,计算机代码)
HTML 可定义很多供格式化输出的元素,比如粗体和斜体字. <b>定义粗体字体 <p>这是一段<b>粗体字体</b>通过标签定义</p> & ...
- sublime text3格式化html,css,js代码
需要安装HTML/CSS/JS prettify插件. 安装步骤:首选项 -> Package Control -> Install Package -> HTML-CSS-JS P ...
随机推荐
- Android Service完全解析,关于服务你所需知道的一切(下)
转载请注册出处:http://blog.csdn.net/guolin_blog/article/details/9797169 在上一篇文章中,我们学习了Android Service相关的许多重要 ...
- HDU Math Problems
1576 const int mod = 9973; n = a - a / mod * mod; a / b = ans; ans * b = a = a / mod * mod + n; n = ...
- angular之自定义过滤器的使用
自定义过滤器需要使用filter函数,格式如下: filter("filterName',function(){ return function(target,args){ .... } } ...
- css高度自适应
何为高度自适应? 高度自适应就是高度能跟随浏览器窗口的大小改变而改变,典型的运用在一些后台界面中上面一栏高度固定用作菜单栏或导航栏,下面一栏高度自适应用于显示内容.高度自适应不像宽度自适应那样简单,在 ...
- Qt 为tableview的item添加网格线
使用qss可以显示每个item的网格: selection-background-color: rgb(170, 170, 127); gridline-color: rgb(255, 255, 25 ...
- 理解Java Integer的缓存策略
转载自http://www.importnew.com/18884.html 本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的一个有助于节省内存.提高性能的特性. ...
- Spring aop 原始的工作原理的理解
理解完aop的名词解释,继续学习spring aop的工作原理. 首先明确aop到底是什么东西?又如何不违单一原则并实现交叉处理呢? 如果对它的认识只停留在面向切面编程,那就脏了.从oop(Objec ...
- Linux下Bash入门学习笔记
学习好shell编程是很有用的,可以使用shell脚本轻巧地完成有趣的工作. 本文地址:http://www.cnblogs.com/yhLinux/p/4047516.html 1. Bash实例, ...
- VPN帐号(每1小时自动断开及更新密码)
免费的vpn帐号 http://freevpn.wwdhz.com/
- CentOS6.5修改yum源
在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度.国内比较快的有163源.sohu源.这里以163源为例子. 1, cd /etc/yum.repos.d 2. ...