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 ...
随机推荐
- Cracking-- 17.13 将二叉树转换成双向链表
在书的105页 使用中根遍历的思想 left 之后 为 root 之后 为 right 则对左子树来说 left->right = root; root->left = left; 对右子 ...
- oracle数据库下的关系(库,实例,用户,表)
一.数据库数据库顾名思义是数据的集合,而Oracle则是管理这些数据集合的软件系统,它是一个对象关系型的数据库管理系统. 二.表空间表空间是Oracle对物理数据库上相关数据的逻辑映射.一个数 ...
- css让元素居中显示
通常在absolute之后, 想让元素居中,都会采用margin-top:-[元素高度的一半]和 margin-left:-[元素宽度的一半] , 但是当我们的元素宽高不是固定的时候, 这就难办了, ...
- poj3728
[描述] 有 N 城 市在一个国家,有一个且只有一个简单的路径每一对城市之间. 一个商人选择了一些路径和想赚尽可能多的钱在每个路径. 当他沿着一条路径,可以选择一个城市购买一些商品和出售他们在一个城市 ...
- 使用zabbix邮件发送报表
简介 首先我们来看下图片的url (右击screens中随便一张图片,选复制图片地址) http://zabbix.xxx.com/chart2.php?graphid=524&screeni ...
- IT小喇叭-企业品牌宣传、产品营销推广的首选
IT小喇叭-企业品牌宣传.产品营销推广的首选 IT小喇叭,成立于2015年6月初,成都芮嘉科技有限公司旗下产品,主要进行媒体资源整合.宣传报道:使移动互联网等相关企业的产品宣传.品牌营销变得更加方便. ...
- a questions
1.2520 is the smallest nuber that can be diveded by each of the number from 1 to 10 without any rema ...
- JDBC Boilerplate
public class Student{ private Integer studId; private String name; private String email; private Dat ...
- ubuntu安装hexo博客
ubuntu下安装hexo博客 一 安装git sudo apt-get install git 二 安装nodejs 官网下载linux安装包.tar.gz文件 解压 tar zxvf 这样变可以切 ...
- 用cookie记住用户名
有时候,我们在做登陆框时会有个复选框选择请记住我,或者有时候会遇到一些弹出框说下次不再提醒,此功能我们可以用js中的cookie实现此功能 下面记录一下如何实现该功能: 利用cookie记录用户名 1 ...