PSR-1

作者: 括儿之家 | 来源:发表于2019-06-06 14:47 被阅读0次

基本代码规范

本节我们将会讨论一些基本的代码规范问题,以此作为将来讨论更高级别的代码分享和技术互用的基础。

RFC 2119中的必须(MUST),不可(MUST NOT),建议(SHOULD),不建议(SHOULD NOT),可以/可能(MAY)等关键词将在本节用来做一些解释性的描述。

概述

源文件必须只使用 <?php 和 <?= 这两种标签。

源文件中php代码的编码格式必须只使用不带字节顺序标记(BOM)的UTF-8。

一个源文件建议只用来做声明(类(class),函数(function),常量(constant)等)或者只用来做一些引起副作用的操作(例如:输出信息,修改.ini配置等),但不建议同时做这两件事。

命名空间(namespace)和类(class) 必须遵守PSR-0标准。

类名(class name) 必须使用骆驼式(StudlyCaps)写法 (译者注:驼峰式(cameCase)的一种变种,后文将直接用StudlyCaps表示)。

类(class)中的常量必须只由大写字母和下划线(_)组成。

方法名(method name) 必须使用驼峰式(cameCase)写法(译者注:后文将直接用camelCase表示)。

文件

2.1. PHP标签

PHP代码必须只使用长标签(<?php ?>)或者短输出式标签(<?= ?>);而不可使用其他标签。

2.2. 字符编码

PHP代码的编码格式必须只使用不带字节顺序标记(BOM)的UTF-8。

2.3. 副作用

一个源文件建议只用来做声明(类(class),函数(function),常量(constant)等)或者只用来做一些引起副作用的操作(例如:输出信息,修改.ini配置等),但不建议同时做这两件事。

短语副作用(side effects)的意思是 在包含文件时 所执行的逻辑与所声明的类(class),函数(function),常量(constant)等没有直接的关系。

副作用(side effects)包含但不局限于:产生输出,显式地使用require或include,连接外部服务,修改ini配置,触发错误或异常,修改全局或者静态变量,读取或修改文件等等

下面是一个既包含声明又有副作用的示例文件;即应避免的例子:

<?php//副作用:修改了ini配置ini_set('error_reporting',E_ALL);//副作用:载入了文件include"file.php";//副作用:产生了输出echo"\n";//声明functionfoo(){//函数体}

下面是一个仅包含声明的示例文件;即应提倡的例子:

<?php//声明functionfoo(){//函数体}//条件式声明不算做是副作用if(!function_exists('bar')) {functionbar()    {//函数体    }}

空间名(namespace)和类名(class name)

命名空间(namespace)和类(class)必须遵守 PSR-0.

这意味着一个源文件中只能有一个类(class),并且每个类(class)至少要有一级空间名(namespace):即一个顶级的组织名(vendor name)。

类名(class name) 必须使用StudlyCaps写法。

PHP5.3之后的代码必须使用正式的命名空间(namespace) 例子:

<?php//PHP 5.3 及之后:namespaceVendor\Model;classFoo{}

PHP5.2.x之前的代码建议用伪命名空间Vendor_作为类名(class name)的前缀

<?php//PHP 5.2.x 及之前:classVendor_Model_Foo{}

类的常量、属性和方法

术语类(class)指所有的类(class),接口(interface)和特性(trait)

4.1. 常量

类常量必须只由大写字母和下划线(_)组成。 例子:

<?php

namespaceVendor\Model;

class Foo {

constVERSION='1.0';

const DATE_APPROVED='2012-06-01';}

4.2. 属性

本指南中故意不对$StulyCaps,$camelCase或者$unser_score中的某一种风格作特别推荐,完全由读者依据个人喜好决定属性名的命名风格。

但是不管你如何定义属性名,建议在一个合理的范围内保持一致。这个范围可能是组织(vendor)级别的,包(package)级别的,类(class)级别的,或者方法(method)级别的。

4.3. 方法

方法名则必须使用camelCase()风格来声明。

相关文章

  • PSR-1

    基本代码规范 本节我们将会讨论一些基本的代码规范问题,以此作为将来讨论更高级别的代码分享和技术互用的基础。 RFC...

  • PSR

    PSR(PHP Standards Recommendation) 是 PHP框架之间标准的代码风格 PSR-1 ...

  • PSR -php编写规范

    1. PSR-0 (Autoloading Standard) 自动加载标准 2. PSR-1 (Basic Co...

  • PSR-2 编码风格规范

    所有 PSR 规范请见:https://psr.phphub.org/ 编码风格指南 本篇规范是 [PSR-1][...

  • PHP编码规范-PSR1

    PSR-1: Basic Coding Standard 基本的编码标准 1.概述 文件必须使用

  • PHP-PSR-[0-4]代码规范

    PSR-0 规范 PSR-1 规范 PSR-2 规范 PSR-3 规范 PSR-4 规范

  • PSR-2:代码风格指导

    代码风格指导 这个指导继承并扩展基本代码规范[PSR-1](https://github.com/php-fig/...

  • PSR-2-coding-style-guide

    PSR-2-coding-style-guide 代码风格指南 本手册是基础代码规范(PSR-1)的继承和扩展。 ...

  • PHP代码规范

    概论 1.主要依据的是①PSR-1、②PSR-12、③SonarQube的php规则部分、④PEAR规则、⑤Sym...

  • PSR2笔记

    代码 必须 遵循 [PSR-1] 中的编码规范 。 代码 必须 使用 4 个空格符而不是「Tab 键」进行缩进。 ...

网友评论

      本文标题:PSR-1

      本文链接:https://www.haomeiwen.com/subject/igfuxctx.html