「PSR 规范」PSR-2 编码风格规范
所有 PSR 规范请见:https://learnku.com/docs/psr
编码风格指南
本篇规范是 PSR-1 基本代码规范的继承与扩展。
本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。
当多名程序员在多个项目中合作时,就需要一个共同的编码规范,
而本文中的风格规范源自于多个不同项目代码风格的共同特性,
因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。
关于「能愿动词」的使用
为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下:
必须 (MUST)
:绝对,严格遵循,请照做,无条件遵守;一定不可 (MUST NOT)
:禁令,严令禁止;应该 (SHOULD)
:强烈建议这样做,但是不强求;不该 (SHOULD NOT)
:强烈不建议这样做,但是不强求;可以 (MAY)
和可选 (OPTIONAL)
:选择性高一点,在这个文档内,此词语使用较少;
参见:RFC 2119
1. 概览
代码 必须 遵循 [PSR-1]() 中的编码规范 。
代码 必须 使用4个空格符而不是「Tab 键」进行缩进。
每行的字符数 应该 软性保持在 80 个之内,理论上 一定不可 多于 120 个,但 一定不可 有硬性限制。
每个
namespace
命名空间声明语句和use
声明语句块后面,必须 插入一个空白行。类的开始花括号(
{
) 必须 写在类声明后自成一行,结束花括号(}
)也 必须 写在类主体后自成一行。方法的开始花括号(
{
) 必须 写在函数声明后自成一行,结束花括号(}
)也 必须 写在函数主体后自成一行。类的属性和方法 必须 添加访问修饰符(
private
、protected
以及public
),abstract
以及final
必须 声明在访问修饰符之前,而static
必须 声明在访问修饰符之后。控制结构的关键字后 必须 要有一个空格符,而调用方法或函数时则 一定不可 有。
控制结构的开始花括号(
{
) 必须 写在声明的同一行,而结束花括号(}
) 必须 写在主体后自成一行。- 控制结构的开始左括号后和结束右括号前,都 一定不可 有空格符。
1.1. 例子
以下例子程序简单地展示了以上大部分规范:
<?php
namespace Vendor\Package; use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass; class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
} final public static function bar()
{
// 方法的内容
}
}
「PSR 规范」PSR-2 编码风格规范的更多相关文章
- 【PHP开发规范】继承与扩展:PSR-2 编码风格规范
之前的一篇文章是对PSR-1的基本介绍 接下来是PSR-2 编码风格规范,它是 PSR-1 基本代码规范的继承与扩展. PSR-1 和PSR-2是PHP开发中基本的编码规范,大家其实都可以参考学习下, ...
- PHP编码风格规范
由于PHP的灵活性,很多人写起代码来也不讲求一个好的代码规范,使得本就灵活的PHP代码看起来很乱,其实PSR规范中的PSR-1和PSR-2已经定义了在PHP编码中的一些规范,只要我们好好遵守这些规范, ...
- 一步一步学Python(1) 基本逻辑控制举例和编码风格规范
(1) 基本逻辑控制举例和编码风格规范 1.while死循环 2.for循环 3.if,elif,else分支判断 4.编码风格(官方建议) 版本:Python3.4 1.while死循环 #func ...
- Android 编码风格规范,很赞哦
1. 前言 这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范.该文档仅供参考,只要形成一个统一的风格,见量知其意就可. 1.1 术语说明 在本文 ...
- 【PHP开发规范】老生常谈的编码开发规范你懂多少?
[PHP开发规范]老生常谈的编码开发规范你懂多少? 这几天看了一下阿里技术发布的一套Java开发规范<阿里巴巴Java开发手册>,里面写了阿里内部的Java开发规范标准,写的很好.这套Ja ...
- PSR-2 编码风格规范
本篇规范是 PSR-1 基本代码规范的继承与扩展. 本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便. 当多名程序员在多个项目中合作时,就需要一 ...
- 前端编码风格规范之 JavaScript 规范
JavaScript 规范 全局命名空间污染与 IIFE 总是将代码包裹成一个 IIFE(Immediately-Invoked Function Expression),用以创建独立隔绝的定义域.这 ...
- 前端编码风格规范(3)—— JavaScript 规范
JavaScript 规范 全局命名空间污染与 IIFE 总是将代码包裹成一个 IIFE(Immediately-Invoked Function Expression),用以创建独立隔绝的定义域.这 ...
- 前端编码风格规范之 HTML 规范
HTML 规范 文档类型 推荐使用 HTML5 的文档类型申明: <!DOCTYPE html>. (建议使用 text/html 格式的 HTML.避免使用 XHTML.XHTML 以及 ...
随机推荐
- webpack4 系列教程(十五):开发模式与webpack-dev-server
作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十五):开发模式与 webpack-dev-server>原文地址.更欢迎来我的 ...
- PHP实现二分法查找
二分查找法需要数组是一个有序的数组. <?php function binarySearch($num, $arr) { $start = 0; $end = count($arr); $mid ...
- Eureka开启登录认证
Eureka服务端配置 一.Eureka的pom.xml 引入spring-boot-starter-security坐标 <dependency> <groupId>org. ...
- Springboot@Configuration和@Bean详解
Springboot@Configuration和@Bean详解 一.@Configuration @Target({ElementType.TYPE}) @Retention(RetentionPo ...
- 关于python当中的@修饰符的浅析
https://blog.csdn.net/class_brick/article/details/81170697 要了解python中@装饰器的作用,首先要记住这么几点: 1. 装饰器符号 ...
- JMeter 正则表达式提取器结合ForEach控制器遍历提取变量值
正则表达式提取器结合ForEach控制器遍历提取变量值 by:授客 QQ:1033553122 1. 需要解决的问题 使用正则提取器提取了一组变量值,需要在其它sampler中,循环引用组中的某几 ...
- Android为TV端助力 Service 两种启动方式的区别
服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务.这两个方法都 可以启动Service,但是它们的使用场合有所不同.使 ...
- Java判断一个字符是否是数字的几种方法的代码
在工作期间,将写内容过程经常用到的一些内容段做个记录,下面内容是关于Java判断一个字符是否是数字的几种方法的内容,希望能对码农们有好处. public class Test{ public stat ...
- Android Studio NDK JNI动态注册本地方法
概述 可能大家觉得javah生成的函数名又臭又长,不太好看.这里可以提供另外一种方法来动态注册c++函数,让其根Java中的native方法关联起来. 实现 这里通过JNIEnv的Resisterna ...
- 整理一些.net core中的错误代码
在hosting .net core时,有些错误代码并不容易理解. 作为标记,方便查询,这些错误代码可能不会出现在VS的错误查找工具里,也不会出现在错误代码转字符描述的函数里. COR_E_AMBIG ...