文档章节

PHP编码规范(PSR)的简述

2688
 2688
发布于 2016/07/04 11:23
字数 835
阅读 395
收藏 1

PSR简介

PSR是一系列关于PHP开发的规范,一般大家遵守的是 php-fig定义的规范,中文翻译版本参考目前官方已制定的规范包括以下六份文件:

  • PSR-0 (弃用)
  • PSR-1 (基本代码规范)
  • PSR-2 (代码风格规范)
  • PSR-2补充
  • PSR-3 (日志接口规范)
  • PSR-4 (自动载入)

PSR-1 基本代码规范

概况

  • 代码文件必须以<?php<?= 标签开始
  • 代码文件必须以不带BOM头的 UTF-8 编码
  • 代码文件中应该只定义类(class)、函数(function)、常量(constants)等声明,或其他会产生从属效应 的操作(如:生成文件输出以及修改.ini配置文件等),二者只能选其一,也就是说功能唯一;
  • 命名空间以及类必须符合 PSR 的自动加载规范:PSR-4;
  • 类的命名必须遵循StudlyCaps大写开头的驼峰命名规范;
  • 类中的常量所有字母都必须大写,单词间用下划线分隔;
  • 方法名称必须符合camelCase式的小写开头驼峰命名规范;

PHP编码规范(PSR-1)

PSR-2 代码风格规范

概况

  • 代码必须遵循 PSR-1 中的编码规范 。
  • 代码必须使用4个空格符而不是tab键 进行缩进。
  • 每行的字符数应该软性保持在80个之内,理论上一定不可多于120个,但一定不能有硬性限制。
  • 每个 namespace 命名空间声明语句和 use 声明语句块后面,必须插入一个空白行。
  • 类的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。
  • 方法的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。
  • 类的属性和方法必须添加访问修饰符(privateprotected以及public),abstract 以及 final 必须声明在访问修饰符之前,而static必须声明在访问修饰符之后。
  • 控制结构的关键字后必须要有一个空格符,而调用方法或函数时则一定不能有。
  • 控制结构的开始花括号({)必须写在声明的同一行,而结束花括号(})必须写在主体后自成一行。
  • 控制结构的开始左括号后和结束右括号前,都一定不能有空格符。

PHP编码规范(PSR-2)

PSR-4 Autoloader

概述

本 PSR 是关于由文件路径 自动载入 对应类的相关规范, 本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外, 本 PSR 还包括自动载入的类对应的文件存放路径规范。

PHP编码规范Autoloader(PSR-4)

在规定好代码规范之后,如何用工具去修改和修正代码文件呢,可以继续阅读

PHP 编码格式化工具 PHP-CS-Fixer的使用

© 著作权归作者所有

2688

2688

粉丝 11
博文 56
码字总数 33491
作品 0
深圳
高级程序员
私信 提问
php-psr-chinese psr规范总结

PSR公认规范总结 PSR规范中文版(大部分来源google翻译)(cn) 部分psr包含例子,附录包含了一些规范的实现 PSR-1:基本编码标准 PSR-2:编码风格指南 PSR-3:日志接口规范 PSR-4:自动加载规范...

Godtoy
09/29
0
0
FIG-PHP PSR规范系列1-基础编码规范

FIG-PHP与PSR简介 FIG-PHP制定了一系列PHP开发规范,简称PSR,这里FIG是框架互操作工作组(Framework Interoperability Group)的简称,PSR是PHP标准推荐(PHP Standard Recommendation)的缩...

一配
2015/07/29
1K
0
【PHP】PSR简要规范

【PHP】PSR简要规范 代码规范 php 一鸣 PSR是一系列关于PHP开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,...

Yomut
2016/05/30
75
0
Web 软件工程师,你想要的一切规范,均在此罗列。

规范清单 of Best! 简述 无论你是入门者,还是期待成长的工作者。** 你是否怀疑过自己的代码是否保持了良好的风格?你是否想了解最新最前沿,同样是最优秀的技术规范? 这里,拥有你现在想要...

狼骑舞者
09/29
0
0
我也学php:编码规范/翻译自PSR

PHP社区百花齐放,拥有大量的函数库、框架和组件。PHP开发者通常会在自己的项目中使用若干个外部库,因而PHP代码遵循或尽量接近同一个代码风格就非常重要,可以让开发者方便地把多个代码库集...

新新
2014/09/01
296
0

没有更多内容

加载失败,请刷新页面

加载更多

Android 图片加载带进度条的ImageView

https://blog.csdn.net/shu_quan/article/details/79975578

shzwork
15分钟前
6
0
关于XAMPP默认端口80 和443被占用的问题

本文转载于:专业的前端网站➩关于XAMPP默认端口80 和443被占用的问题 关于安装xampp-win32-1.8.1-VC9-installer.zip后启动时候报端口80和443被占用的问题解决 xampp-win32-1.8.1-VC9-instal...

前端老手
17分钟前
6
0
错误Setting the parent of a transform which resides in a Prefab Asset is...

错误日志 Setting the parent of a transform which resides in a Prefab Asset is disabled to prevent data corruption 原因1 用Resouce.Load加载一个prefab,没有实例化直接设置parent ......

XBlock
18分钟前
9
0
Spring boot 配置mybatis

当然任何模式都需要首先引入mybatis-spring-boot-starter的pom文件,现在最新版本是1.1.1(刚好快到双11了 :)) <dependency>    <groupId>org.mybatis.spring.boot</groupId>    <......

雷开你的门
19分钟前
9
0
云栖干货回顾 | 更强大的实时数仓构建能力!分析型数据库PostgreSQL 6.0新特性解读

阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务ACID。AnalyticDB PG通过行存...

开源中国小二
31分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部