PHP规范之PSR-1

 2023-09-05 阅读 56 评论 0

摘要:基本编码规范 此PHP标准包含了如何去编写高通用性代码中那些标准元素(class,function ,ect.)的正确姿势!在RFC 2119文档中描述了关键字 “MUST”,“MUST NOT”,“SHALL”,“SHALL”,“SHALL NOT”,“SHOULD”࿰

基本编码规范

此PHP标准包含了如何去编写高通用性代码中那些标准元素(class,function ,ect.)的正确姿势!
在RFC 2119文档中描述了关键字 “MUST”,“MUST NOT”,“SHALL”,“SHALL”,“SHALL NOT”,“SHOULD”,“SHOULD NOT”,“RECOMMENDED”,“MAY”,“OPTIONAL”。

1.总览

  • 文件必须使用<?php<?=标签打头。

  • 文件编码必须使用UTF-8 无BOM头的格式。

  • 文件可声明类,方法,常量,或者引发“副作用”(输出语句,改变PHP.ini的代码,etc.),但是不应该同时包含着两项。

  • 命名空间需要遵循自动加载规范:PSR-0,PSR-4。

  • 类名必须为StudlyCaps格式(首字母大写的驼峰式)。

  • 常量必须要由大写字母组成,单词间使用下划线(_)连接。

  • 方法必须要使用camelCase格式(首字母小的的驼峰式)

文件

2.1 PHP标签

PHP代码必须写在<?php ?>或者简短声明<?=?>(php.ini中short_open_tag为On的情况下,不推荐),不能使用其他标签。

2.2编码格式

PHP代码必须使用UTF-8无BOM头的格式保存。

2.3 副作用

一个文件可以声明类,方法,常量等,也可以执行那些"副作用"逻辑,但是不能同时做着两件事!
“副作用”这个词代表这个文件执行了跟此文件中声明的类,方法,常量没有直接联系的逻辑。
“副作用”包含:产生输出,直接使用requireinclude包含文件,连接外部服务,修改php.ini中的设置,引发错误或异常,修改全局或静态变量,读写文件等等。
下面这个例子就是一个文件同时包含声明和“副作用”

<?php
// 副作用:修改了php.ini的配置
ini_set('error_reporting', E_ALL);// 副作用:引入文件
include "file.php";// 副作用:产生输出
echo "<html>\n";// declaration
function foo()
{// function body
}

下面这个例子只包括声明,没有“副作用”

<?php
// declaration
function foo()
{// function body
}// 条件语句不是“副作用”
if (! function_exists('bar')) {function bar(){// function body}
}

命名空间和类名

命名空间和类命名必须遵循一项自动加载规范:PSR-0或PSR-4。
这表示一个文件只能有一个类,并且这个类只有有一层命名空间:顶层空间为开发商名
类名必须声明为StudlyCaps(首字母大写的驼峰式)。
PHP5.3和之后的版本必须使用规范的命名空间。
例子:

<?php
// PHP 5.3 and later:
namespace Vendor\Model;class Foo
{
}

PHP5.2.x 和之前的版本应该使用由Vendor_+类名的形式声明类,作为虚拟命名空间。

<?php
// PHP 5.2.x and earlier:
class Vendor_Model_Foo
{
}

4 类常量,属性,方法

这里的类指 Classes,interfaces,traits。这三种类型都要遵守以下规范

4.1 常量

类常量必须由大写字母组成,单词间由下划线组成。例:

<?php
namespace Vendor\Model;class Foo
{const VERSION = '1.0';const DATE_APPROVED = '2012-06-01';
}

4.2 属性

属性名可以使用$StudlyCaps(大写字母开头的驼峰式), $camelCase(小写字母开头的驼峰式), $under_score(下线线作为分隔符的命名)。一旦使用了其中的某一项命名凡是,应该在一定的代码内保持一致(库,包,类,或者方法范围内)。

4.3 方法

方法必须被声明为camelCase(小写字母打头的驼峰似)。

其他

  • 原文PSR-1-basic-coding-standard.md

  • PHP之道

注:本文非标准翻译
图片描述

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/1182.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息