所有 PSR 规范请见:https://learnku.com/docs/psr

https://learnku.com/laravel/t/2079/psr-specification-psr-2-coding-style-specification
https://psr.phphub.org/

编码风格指南

本篇规范是 PSR-1 基本代码规范的继承与扩展。

本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。

当多名程序员在多个项目中合作时,就需要一个共同的编码规范,
而本文中的风格规范源自于多个不同项目代码风格的共同特性,
因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。

关于「能愿动词」的使用

为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下:

  • 必须 (MUST):绝对,严格遵循,请照做,无条件遵守;
  • 一定不可 (MUST NOT):禁令,严令禁止;
  • 应该 (SHOULD) :强烈建议这样做,但是不强求;
  • 不该 (SHOULD NOT):强烈不建议这样做,但是不强求;
  • 可以 (MAY) 和 可选 (OPTIONAL) :选择性高一点,在这个文档内,此词语使用较少;

参见:RFC 2119

1. 概览

  • 代码 必须 遵循 [PSR-1]() 中的编码规范 。

  • 代码 必须 使用4个空格符而不是「Tab 键」进行缩进。

  • 每行的字符数 应该 软性保持在 80 个之内,理论上 一定不可 多于 120 个,但 一定不可 有硬性限制。

  • 每个 namespace 命名空间声明语句和 use 声明语句块后面,必须 插入一个空白行。

  • 类的开始花括号({) 必须 写在类声明后自成一行,结束花括号(})也 必须 写在类主体后自成一行。

  • 方法的开始花括号({) 必须 写在函数声明后自成一行,结束花括号(})也 必须 写在函数主体后自成一行。

  • 类的属性和方法 必须 添加访问修饰符(privateprotected 以及 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(){// 方法的内容
    }
}

转载于:https://www.cnblogs.com/yszr/p/10584970.html

「PSR 规范」PSR-2 编码风格规范相关推荐

  1. php psr 编码规范_PHP编码风格规范

    由于PHP的灵活性,很多人写起代码来也不讲求一个好的代码规范,使得本就灵活的PHP代码看起来很乱,其实PSR规范中的PSR-1和PSR-2已经定义了在PHP编码中的一些规范,只要我们好好遵守这些规范, ...

  2. 【PHP开发规范】继承与扩展:PSR-2 编码风格规范

    之前的一篇文章是对PSR-1的基本介绍 接下来是PSR-2 编码风格规范,它是 PSR-1 基本代码规范的继承与扩展. PSR-1 和PSR-2是PHP开发中基本的编码规范,大家其实都可以参考学习下, ...

  3. php 结构体_【开发规范】PHP编码开发规范下篇:PSR-2编码风格规范

    之前的一篇文章是对PSR-1的基本介绍 接下来是PSR-2 编码风格规范,它是 PSR-1 基本代码规范的继承与扩展. PSR-1 和PSR-2是PHP开发中基本的编码规范,大家其实都可以参考学习下, ...

  4. php psr-2,「PSR 规范」PSR-2 编码风格规范

    编码风格指南 本篇规范是 PSR-1 基本代码规范的继承与扩展. 本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便. 当多名程序员在多个项目中合 ...

  5. 【php】【psr】psr2 编码风格规范

    为避免浏览多个作者参与编写的项目时,因风格的不同造成不便时,大家可以使用同一套风格规范来统一标准 代码必须遵循PSR1的规范 缩进使用4个空格,而不是TAB键缩进 每行代码控制在80-120个 每个n ...

  6. Python编码风格规范

    Python风格规范 Python语言规范 Python语言规范 pychecker

  7. C++编码风格/规范/建议

    C++编码规范下载链接 Google 开源项目风格指南 里面包含五份(C++ .Objective-C.Python .JSON.Shell )中文版的风格指南. 如果你的类不需要拷贝 / 移动操作, ...

  8. 前端编码风格规范(3)—— JavaScript 规范

    JavaScript 规范 全局命名空间污染与 IIFE 总是将代码包裹成一个 IIFE(Immediately-Invoked Function Expression),用以创建独立隔绝的定义域.这 ...

  9. 淘宝JavaScript 编码风格规范

    行与缩进 语句行 尽可能不要让每行超过 120 个字符; 语句必须以分号作为结束符, 不要忽略分号; 空格 数值操作符(如, +/-/*/% 等)两边留空; 赋值操作符/等价判断符两边留一空格; fo ...

最新文章

  1. Angular动态创建组件之Portals
  2. 服务端客户端QA:协作对接沟通流程及优化
  3. 从起源到未来,一文看懂70年的人工智能简史
  4. slice(),substring()和substr()的异同
  5. fileviewfinder.php,Laravel在FileViewFinder.php中查找视图的错误处理程序
  6. from html参数传到另外php文件中_在 PHP 中格式化并高亮 SQL 语句
  7. 完整国内城市js级联选择
  8. flex bison 下载
  9. 斗鱼视频sign签名逆向分析
  10. OSEK和Autosar网络管理的区别和共同点
  11. React 18 新特性-入门教程
  12. bmi计算器公式_bmi计算公式
  13. Byval 和 Byref的区别
  14. Java变态题目(持续更新)
  15. Vultr 怎么修改 Root 账户密码
  16. 数据可视化软件如何在数字孪生领域后来居上?
  17. 【软考备战·希赛网每日一练】2023年4月17日
  18. c语言中while与do while循环的主要区别是什么
  19. 程序员中的老司机们,30 后的路该开向哪里?----转自程序人生
  20. mobaxterm标签页最下方服务器内存硬盘情况信息的状态栏显示与关闭

热门文章

  1. 如何理解矩阵的特征向量和特征值?
  2. AI工程师面试知识点:TensorFlow 框架
  3. 观点丨麦肯锡:怎么理解“人工智能最大挑战与机会”
  4. 机器人流程自动化(RPA)系统原理及特点
  5. 亚马逊首席技术官预测2021年将改变世界的八大技术趋势
  6. 人机融合智能:人工智能3.0
  7. 华为鸿蒙系统四大特性:基于微内核,面向全场景,分布式架构
  8. 2019版中国数字经济发展与就业白皮书
  9. “脑补”的科学依据:眼前的黑不是黑,靠得是你的大脑
  10. 城市大脑不仅是AI系统,更是结合人类智慧的混合智能巨系统