PSR 规范

具体中文文档 https://laravel-china.org/docs/psr 在编码中我们一般严格遵守PSR-2规范即可

PSR-0 自动加载规范(已弃用)
    PSR-1 基础编码规范
    PSR-2 编码风格规范
    PSR-3 日志接口规范
    PSR-4 自动加载规范
    PSR-5 PHPDoc 标准(未通过)
    PSR-6 缓存接口规范
    PSR-7 HTTP 消息接口规范
    PSR-8 Huggable 接口(未通过)
    PSR-9 项目安全问题公示(未通过)
    PSR-10 项目安全上报方法(未通过)
    PSR-11 容器接口
    PSR-12 编码规范扩充(审阅中)
    PSR-13 超媒体链接 已完成
    PSR-14 事件分发器(未通过)
    PSR-15 HTTP 请求处理器 已完成
    PSR-16 缓存接口

废话不多说,能看它的文章的自然应知道它是做什么的。

一,安装,不多说,github上给的很清楚 ,给个composer的:

composer global require friendsofphp/php-cs-fixer

开始时提示切换到特定目录,执行切换即可。

地址:https://github.com/FriendsOfPHP/PHP-CS-Fixer

当然最简单的是到这里下载phar包 https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases

然后在windows 创建php-cs-fixer.bat

php php-cs-fixer.phar fix --config=.php_cs.dist  %~sf1
pause

mas\linux 创建 php-cs-fixer

#!/bin/sh
/usr/local/php7/bin/php -d allow_url_fopen=On -d detect_unicode=Off /usr/local/php7/bin/php-cs-fixer-v2.phar $*

以上未经测试,推荐使用composer安装。

二,使用,

用法也很简单,最基本的命令参数就是 fix,直接执行时会尽可能多的根据默认标准格式化代码:

# 格式化目录 如果是当前目录的话可以省略目录
php-cs-fixer fix /path/to/dir
# 格式化文件
php-cs-fixer.phar fix /path/to/file

--verbose 选项用于展示应用了的规则,默认是文本(txt)格式。

--level 选项用于控制需要使用的规则层级:

php-cs-fixer fix /path/to/project --level=psr0
php-cs-fixer fix /path/to/project --level=psr1
php-cs-fixer fix /path/to/project --level=psr2
php-cs-fixer fix /path/to/project --level=symfony

默认情况下执行的是 PSR-2 的所有选项以及一些附加选项(主要是 symfony 相关的)。还有一些属于『贡献级别』的选项,你可以通过 --fixers 选择性的添加,--fixers 的多个条件要用逗号分开:

php-cs-fixer fix /path/to/dir --fixers=linefeed,short_tag,indentation

如果有需要的话也可以使用 -name_of_fixer 采取黑名单的方式设定禁用哪些选项。如果同时设定了 --fixers-name_of_fixer,前者的优先级更高。

同时使用 --dry-run--diff 命令可以显示出需要修改的汇总,但是并不实际修改。

通过以下方式也可以查看有哪些内容是会修改的,但是并不实际改动文件:

cat foo.php | php-cs-fixer fix --diff -

github上也很清楚。。给个win中cmd的例子,是使用composer安装的,安装方式不同使用方式不同(当然php-cs-fixer安装地址会不同) :

C:\Users\Mr.V\AppData\Roaming\Composer\vendor\bin\php-cs-fixer.bat fix D:\lnmp\vhosts\xx.com\index.php

三,说下phpstorm的配置,Atom自行百度吧,虽然Atom开源免费但是真心觉得没phpstorm好用

路径:File->settings->Tools->External Tools

Name自定义即可。

Program 如果是composer安装则选择composer下php-cs-fixer.bat所在的位置,Win下一般为:C:\Users\Mr.V\AppData\Roaming\Composer\vendor\bin\php-cs-fixer.bat ,linux/mac下一般为:~/.composer/vendor/bin/php-cs-fixer 如果路径有出入可自行搜索。

Arguments --verbose fix "$FileDir$/$FileName$"  --verbose为显示详细信息,如有没有修改及修改内容。 fix 后面跟的为phpstorm内置的变量,望文知意即可。在这个中可以配置--config=C:\Users\XXX\AppData\Roaming\Composer\vendor\php-cs-fixer\diff\src\.php ,.php_cs.dist 是官方提供的格式化标准,其实就是php文件,自己可以从官方github仓库中下载,–config后面是这个文件的存放地址,根据你的实际环境来。

fix $FileDir$/$FileName$ --config=C:\Users\XXX\AppData\Roaming\Composer\vendor\php-cs-fixer\diff\src\.php,默认会查找项目根目录下的.php-cs文件

Working directory 工作目录,同样是phpstorm内置变量,$ProjectFileDir$

下方的 Advanced Options 第一项为执行fix后刷新,第二项为输出fix信息到编辑器的console控制台。其他项不用配置。

可以配置一个快捷键方便使用

最后项目根目录可以放置github上提供的.php-cs文件,基本能满足需求,不爽的可以自己定义它,看github修改吧。

格式化选项

  • psr0 [PSR-0]
    PSR-0 的路径和命名空间标准

  • encoding [PSR-1]
    文件必须是不带 BOM 的 UTF-8 编码;

  • short_tag [PSR-1]
    只能使用 <?php ?><?= ?> 两种 PHP 代码标签;

  • braces [PSR-2]
    所有语句块都必须包含在花括号内,且位置以及缩进是符合标准的;

  • class_definition [PSR-2]
    class、trait、interfaces 关键字和名称之间只能有一个空格;

  • elseif [PSR-2]
    使用 elseif 替代 else if

  • eof_ending [PSR-2]
    文件必须以空白行结尾;

  • function_call_space [PSR-2]
    调用函数和方法时,函数名和方法名与参数扩展之间不能有空格;

  • function_declaration [PSR-2]
    函数声明时空格的使用需要符合 PSR-2;

  • indentation [PSR-2]
    代码必须使用四个空格缩进而不是制表符;

  • line_after_namespace [PSR-2]
    命名空间的声明后必须有一个空白行;

  • linefeed [PSR-2]
    所有 PHP 文件都只能使用 LF(Unix) 结尾;

  • lowercase_constants [PSR-2]
    PHP 常量 true、false 和 null 必须使用小写;

  • lowercase_keywords [PSR-2]
    PHP 关键字必须都是小写;

  • method_argument_space [PSR-2]
    方法声明及调用时,参数之间的逗号前不能有空格,逗号后必须有一个空格;

  • multiple_use [PSR-2]
    每个 use 只能声明一个元素;

  • parenthesis [PSR-2]
    圆括号内两侧不能有空格;

  • php_closing_tag [PSR-2]
    纯 PHP 文件必须省略 ?> 标签;

  • single_line_after_imports [PSR-2]
    每个 use 声明独立一行,且 use 语句块之后要有一个空白行;

  • trailing_spaces [PSR-2]
    删除非空行之后多余的空格;

  • visibility [PSR-2]
    每个属性和方法都必须指定作用域是 publicprotected 还是 privateabstractfinal 必须位于作用域关键字之前,static 必须位于作用域之后;

  • array_element_no_space_before_comma [symfony]
    数组声明中,逗号之前不能有空格;

  • array_element_white_space_after_comma [symfony]
    数组声明中,逗号之后必须有一个人空格;

  • blankline_after_open_tag [symfony]
    PHP 开始标签的同一行不能有代码,且下面必须有一个空白行;

  • concat_without_spaces [symfony]
    点连接符左右两边不能有多余的空格;

  • double_arrow_multiline_whitespaces [symfony]
    => 操作符两端不能有多个空白行;

  • duplicate_semicolon [symfony]
    删除重复的分号;

  • empty_return [symfony]
    return 语句如果没有任何返回的话直接写 return 即可(不用 return null);

  • extra_empty_lines [symfony]
    删除多余的空白行;

  • function_typehint_space [symfony]
    修正函数参数和类型提示之间的缺失的空格问题;

  • include [symfony]
    include 和文件路径之间需要有一个空格,文件路径不需要用括号括起来;

  • join_function [symfony]
    使用 join 替换 implode 函数;

  • list_commas [symfony]
    删除 list 语句中多余的逗号;

  • method_argument_default_value [symfony]
    函数参数中有默认值的参数不能位于无默认值的参数之前;

  • multiline_array_trailing_comma [symfony]
    多行数组最后一个元素应该也有一个逗号;

  • namespace_no_leading_whitespace [symfony]
    命名空间前面不应该有空格;

  • new_with_braces [symfony]
    使用 new 新建实例时后面都应该带上括号;

  • no_blank_lines_after_class_opening [symfony]
    类开始标签后不应该有空白行;

  • no_empty_lines_after_phpdocs [symfony]
    PHP 文档块开始开始元素下面不应该有空白行;

  • object_operator [symfony]
    T_OBJECT_OPERATOR (->) 两端不应有空格;

  • operators_spaces [symfony]
    二进制操作符两端至少有一个空格;

  • phpdoc_indent [symfony]
    phpdoc 应该保持缩进;

  • phpdoc_inline_tag [symfony]
    修正 phpdoc 内联标签格式,使标签与后续内容始终位于一行;

  • phpdoc_no_access [symfony]
    @access 不应该出现在 phpdoc 中;

  • phpdoc_no_empty_return [symfony]
    @return void@return null 不应该出现在 phpdoc 中;

  • phpdoc_no_package [symfony]
    @package@subpackage 不应该出现在 phpdoc 中;

  • phpdoc_params [symfony]
    @param, @throws, @return, @var, 和 @type 等 phpdoc 标签都要垂直对齐;

  • phpdoc_scalar [symfony]
    phpdoc 标量类型声明时应该使用 int 而不是 integerbool 而不是 booleanfloat 而不是 real 或者 double

  • phpdoc_separation [symfony]
    phpdoc 中注释相同的属性应该放在一起,不同的属性之间应该有一个空白行分割;

  • phpdoc_short_description [symfony]
    phpdoc 的简要描述应该以 .!? 结尾;

  • phpdoc_to_comment [symfony]
    文档块应该都是结构化的元素;

  • phpdoc_trim [symfony]
    除了文档块最开始的部分和最后的部分,phpdoc 开始和结束都应该是有内容的;

  • phpdoc_type_to_var [symfony]
    @type 需要使用 @var 代替;

  • phpdoc_types [symfony]
    phpdoc 中应该正确使用大小写;

  • phpdoc_var_without_name [symfony]
    @var@type 注释中不应该包含变量名;

  • pre_increment [symfony]
    不应该使用 ++i--i 的用法;

  • print_to_echo [symfony]
    如果可能的话,使用 echo 代替 print 语句;

  • remove_leading_slash_use [symfony]
    删除 use 前的空行;

  • remove_lines_between_uses [symfony]
    删除 use 语句块中的空行;

  • return [symfony]
    return 之前应该有一个空行;

  • self_accessor [symfony]
    在当前类中使用 self 代替类名;

  • short_bool_cast [symfony]
    bool 类型数据前不应该试用两个感叹号;

  • single_array_no_trailing_comma [symfony]
    PHP 单行数组最后一个元素后面不应该有空格;

  • single_blank_line_before_namespace [symfony]
    命名空间声明前应该有一个空白行;

  • single_quote [symfony]
    简单字符串应该使用单引号代替双引号;

  • spaces_after_semicolon [symfony]
    修复分号后面的空格;

  • spaces_before_semicolon [symfony]
    禁止只有单行空格和分号的写法;

  • spaces_cast [symfony]
    变量和修饰符之间应该有一个空格;

  • standardize_not_equal [symfony]
    使用 <> 代替 !=

  • ternary_spaces [symfony]
    三元运算符之间的空格标准化;

  • trim_array_spaces [symfony]
    数组需要格式化成和函数/方法参数类似,上下没有空白行;

  • unalign_double_arrow [symfony]
    不对其 =>

  • unalign_equals [symfony]
    不对其等号;

  • unary_operators_spaces [symfony]
    一元运算符和运算数需要相邻;

  • unneeded_control_parentheses [symfony]
    删除控制结构语句中多余的括号;

  • unused_use [symfony]
    删除没有用到的 use 语句;

  • whitespacy_lines [symfony]
    删除空白行中多余的空格;

php-cs-fixer实践相关推荐

  1. php cs fixer 怎么用,php代码格式化工具 php-cs-fixer的使用

    php-cs-fixer简介 php-cs-fixer 是个代码格式化工具,格式化的标准是 PSR-1.PSR-2 以及一些 symfony 的标准. 安装 官方网站 github 有两个版本 v1 ...

  2. php cs fixer switch,PSR规范代工厂之 php-cs-fixer 的代码合规之路

    前言 编程语言都有一套专属的语法,循其法而编其码,方能被该语言的编译器识别,从而编译成低级语言,被机器识别.而语法规范不了编码风格,编码风格是由程序员决定的,程序员的思想的天马行空,也造就了风格迥异的 ...

  3. php cs fixer config,使用php-cs-fixer来格式化php代码

    文档地址 到上面地址下载php-cs-fixer.phar这个文件 新建一个格式化配置文件(使用哪些规则对代码进行格式化)$header = << This file is part of ...

  4. PHP vscode 格式化扩展php cs fixer配置

    PHP vscode 格式化扩展php cs fixer配置 首先在扩展商店里找到php cs fixer并且安装 安装好后点击"设置"->"扩展设置" ...

  5. php语法检查修复工具,代码标准修复工具 PHP CS Fixer

    授权协议: MIT 开发语言: PHP 操作系统: 跨平台 软件介绍 PHP CS Fixer 是代码标准修复工具,当你想把 PHP 编码标准定义为 PSR-1 和 PSR-2 文件标准时,它能修复你 ...

  6. php cs fixer config,php-cs-fixer - PHP 编码格式化工具

    php-cs-fixer 是个代码格式化工具,格式化的标准是 PSR-1.PSR-2 以及一些 symfony 的标准.这个工具也和 symfony.twig 等优秀的 PHP 库出自同门. 安装与更 ...

  7. php cs fixer.bat,在 Windows 上安裝 Sublime Text 2 搭配 PHP-CS-Fixer 套件

    Note: 2014.12.22 PHP-CS-Fixer 不支援 "--level": "all" 設定了 由於近幾年來 PHP-Fig 發佈 PSR-0 ~ ...

  8. php cs fixer 怎么用,详解使用php-cs-fixer格式化代码

    1. 安装 $ cd /usr/local/bin $ wget https://cs.symfony.com/download/php-cs-fixer-v2.phar -O php-cs-fixe ...

  9. php cs fixer config,php-cs-fixer

    [TOC] # 使用 PHP-CS-Fixer 格式化代码 ## 项目安装 php-cs-fixer 进入到项目的 `php` 目录下: ```shell git fetch git rebase / ...

  10. php cs fixer,php-cs-fixer是什么

    php-cs-fixer是什么? php-cs-fixer - PHP 编码格式化工具 php-cs-fixer 是个代码格式化工具,格式化的标准是 PSR-1.PSR-2 以及一些 symfony ...

最新文章

  1. 不兼容结构的协调——适配器模式
  2. todolist实现删除的功能_coc-todolist: nvim/vim 的 todolist/task 管理插件
  3. ubuntu下搭建tftp服务器
  4. 阿里云Https部署网站
  5. 阿里蚂蚁金服中间件(Java 4轮面试题含答案):Redis缓存+线程锁+微服务等
  6. 当年这个决定,让李飞飞奠定 AI 江湖的女王地位
  7. 新版手机浏览器_Firefox手机浏览器app下载安装_Firefox手机浏览器软件最新版免费下载...
  8. Linux 内存中的Cache
  9. mysql两表查询单个_对两个表进行单个MySQL选择查询是可能的吗?
  10. php 真太阳时间修正,全国真太阳时对照表
  11. 搜狗实验室新闻数据文本分类深度学习案例 ———Tensorflow+CNN深度学习全流程(上)
  12. java 拍照后加上日期水印_有什么软件能批量给照片添加拍照日期的水印?
  13. ComposeOptions.kotlinCompilerVersion is deprecated
  14. GEC6818 移植 rtl8723bu wifi驱动
  15. 如何才能高效的学习,99%的人不知道的高效学习法
  16. css怎么修改图片像素,CSS 像素图制作攻略
  17. Android中的单元测试
  18. ie退出全屏快捷键_讲解win7电脑全屏快捷键介绍
  19. hash:哈希表 哈希桶
  20. AlphaGo Zero 模型框架

热门文章

  1. 电脑通过NOKIA手机(猫)利用GPRS无线上网
  2. 编程语言介绍以及其特点
  3. 网络原理之TCP-IP地址 子网掩码
  4. 网络编程-Socket套接字(TCP、UDP、广播和组播通信)
  5. SpringCloud 微服务分布式 笔记(二)
  6. Java枚举类,你真的了解吗?
  7. gsea结果分析图怎么看_GSEA富集分析图
  8. antvue table 表格实现 首行搜索
  9. librosa 音频处理
  10. cas:1003562-42-2,FAC-IR(PPY)2PC,金属配合物材料