PSR

phpfmt,phpcs,php-cs-fixer插件是php编辑器的代码格式化插件。

php php-cs-fixer fix /path/to/dir 对某个目录下面的php文件格式化 php
php-cs-fixer fix /path/to/file 对单个php文件格式化 php-cs-fixer fix
/path/to/project --rules=@PSR2 采用PSR2规范进行格式化

phpStorm格式化代码快捷键:Ctrl+Alt+L。
PSR-0:自动加载标准,2014-10-21该标准已经被废弃,使用PSR-4替代,不再细讲
PSR-1:基本的编码风格
标签:<?php ?>或<?= ?>
编码:PHP文件必须使用无BOM的UTF-8编码
类名:类名必须使用大驼峰驼峰式
常量:全部是用大写,单词间使用下划线(_)分开
方法:类的方法必须使用小写字母开头的驼峰式(camelCase)命名。方法名后面不能有空格
函数:使用小写字母和下划线命名。
命名空间以及类必须符合PSR自动加载规范。
类的属性命名可以遵循大驼峰,小驼峰,下划线分割式等在一定范围内保持一致。

PSR-2:编码风格(更严格)
缩进:必须以4个空格为缩进,不能使用制表符(Tab键)缩进。
最后要有一个空行
PHP的关键字必须使用小写,而且true, false, 和 null也必须小写。
PHP的控制结构包括if、else、elseif、switch、case、while、do while、for、foreach、try和catch。如果这些关键词后面有一对原括号,开始括号前必须有一个空格,与方法和类的定义体不同,控制结构关键词后面的起始括号应该和控制结构关键词写在同一行,控制结构的开始左括号后和结束右括号前,一定不可有空格符。
控制结构关键词后 必须 有一个空格。
左括号 ( 后 一定不可 有空格。
右括号 ) 前也 一定不可 有空格。
右括号 ) 与开始花括号 { 间 必须 有一个空格。
结构体主体 必须 要有一次缩进。
结束花括号 } 必须 在结构体主体后单独成行。

每行的字符数应软性保持在80个之内。
namespace命名空间声明语句和use声明语句块后面,必须插入一个空白行。
类和方法的开始花括号和结束花括号必须自成一行。
类的属性和方法必须添加访问修饰符。
方法及函数调用时,方法名或函数名与参数左括号之间 一定不可 有空格,参数右括号前也 一定不可 有空格。每个逗号前 一定不可 有空格,但其后 必须 有一个空格。

PSR-3:日志记录器接口,八个等级的日志:debug、 info、 notice、 warning、 error、 critical、 alert 以及 emergency,第九个方法 —— log,其第一个参数为记录的等级。
Psr\Log\LoggerInterface
https://packagist.org/packages/monolog/monolog

PSR-4:自动加载
PSR-4规范不要求改变代码的实现方式,只建议如何使用文件系统目录结构和PHP命名空间组织代码,PSR-4规范以来PHP命名空间和文件系统目录结构查找并加载PHP类、接口和Traits,这正是PSR-4的精髓所在。

composer.json
{

    "type": "project",

    "autoload": {

        "psr-4": {

            "Admin\\": "admin/"

        }

    }

}

PSR-5:PHPDoc注释标准
phpstrom注释自动生成快捷键:ctrl+enter
phpdocumentor:自动检出生成api文档。https://phpdoc.org/

php phpDocumentor.phar -f 文件 -d 文件夹 -t api路径

psr规范主要可以分为以下几部分

  1. 编码。必须是无BOM头的utf-8编码
  2. 标签。<?php ?>或<?= ?>
  3. 命名规范。方法名必须是小驼峰;类名必须是大驼峰;属性可以是一定范围内的大驼峰或小驼峰,或下划线分割式;常量必须是大小,单词间用下划线分割;关键字和类型必须是小写,如true;
  4. 缩进是四个空格。
  5. namespace和use的语句块后必须有一个空行。
  6. 类名和关键词extends,implements必须在同一行;类的花括号必须独立一行;implements的继承列表可以分成多行;类属性和方法都必须添加访问修饰符;
  7. 方法或函数。类方法名后不能有空格;方法的参数列表的逗号后面必须要有空格,逗号前面一定不能有空格,参数列表可以分成多行;类方法的花括号必须独立一行;方法的开始花括号必须与方法名同行;方法及函数在调用时,名字后面不能有空格,右括号也不可有空格;闭包声明的function和use关键词前后都必须要有一个空格;
  8. 控制结构。控制结构关键词后必须有空格;右括号与花括号间必须有空格;结束花括号必须单独成行;结构主体必须要有一次缩进;左括号后和右括号前不能有空格;
  9. 参数。参数列表可以独立成行;参数间的逗号后面必须有空格;
  10. 日志接口。接口主要定义了:八个方法分别用来记录八个等级的日志, debug、 info、 notice、 warning、 error、 critical、 alert 以及 emergency;还有一个log方法;以上每个方法都接受一个字符串或有__toString()方法的对象作为记录信息参数;记录信息可以带占位符;占位符名称必须由一对花括号包含;占位符名称只能是字母,数字,下划线,英文句号组成;
  11. 自动加载。全限定类名必须拥有一个顶级命名空间名称;必须有一个最终类名;类名必须区分大小写;命名空间前缀后面的相邻子命名空间与根目录下的目录名相对应。
  12. 缓存接口。主要定义了调用类库,实现类库,生存时间值(以秒为单位),过期时间,键,命中,未命中,延迟;类库必须支持序列化所有数据类型;
  13. http接口。主要定义了RequestInterface,ResponseInterface,ServerRequestInterface
  14. http请求处理器。主要定义RequestHandlerInterface。
  15. 事件分发器。主要定义了事件,监听器,发射器,分发器,监听器提供者。如yii的日志分发处理机制。
  16. 容器接口。依赖注入
  17. 所有的 PHP 文件都必须以非空行结尾,以一个 LF 结尾。
  18. 在仅包含 PHP 代码的文件中,必须省略结尾的 ?> 标记。
  19. 所有二进制 算术,比较,赋值,按位,逻辑、字符串和类型运算符必须在前后跟至少一个空格;递增 / 递减运算符和操作数之间 不得 有任何空格
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值