PHP-PSR标准规范

151 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

PHP-PSR标准规范

前言

本系列文章由公众号 yuantanphp 提供,欢迎关注公众号 yuantanphp 获取更多PHP相关资源

PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。

概述里面提到了PHP FIG这里我们就介绍一下FIG

PHP FIG介绍

FIG(Framework Interoperability Group)是一个框架互动性小组,成立于2009年,由多位开源框架胡开发者共同成立。旨在建立一个协作标准,各个框架遵循统一的编码规范。避免因各自自行发挥带来的代码规范不一致问题影响了PHP的发展。了解更多可访问官网:www.php-fig.org/

基础编码规范

文件

PHP 标签

PHP 代码文件必须使用 长标签或者 短标签

<?php
?>
<?=
?>

使用短标签的前提是在 php.ini 配置文件设置 short_open_tag 为 On,在实际开发工作中我们更倾向于使用长标签 写法

在实际项目开发中我们通常不会使用结束标签 ?>,理由如下

使用 ?> 标签或许会导致输出多余的空格和换行符,因此所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部,这样有利于确认这个文件已经结束。

错误范例

<?php
    echo "Hello World";
?>
    
    

此范例会输出多余的空行

正确范例

<?php
    echo "Hello World";

文件编码

PHP 代码文件必须使用不带 BOM 的 UTF-8 格式

BOM——Byte Order Mark,就是字节序标记,具体将在系列的番外篇提到

副作用

一个PHP文件中 要么只定义新的声明,如类、函数或常量等不产生副作用的操作,要不就只包含产生副作用的逻辑操作,但不应该两者同时出现在同一个文件里

副作用 包含不限于 生成输出、requeire、include、echo、var_dump、修改ini设置等等其他

错误范例
<?php
// [副作用] 引入文件
include "file.php";
// [副作用] 生成输出
echo "Hello World";
​
//声明函数
function main(){
​
}
正确范例
<?php
//声明函数
function test(){
​
}
​
//判断函数是否声明-如果未声明则声明
if(!function_exits("main")){
    function main(){
        
    }
}

命名空间、类、类的常量、属性和方法

命名空间、类名规范

命名空间和类名必须遵循 【 自动加载 】 规范,这意味着每个类都独立成为一个文件,并且至少在一个层次的命名空间内。

类名 必须 以类似 ClassName 形式的大写开头的驼峰命名方式声明

范例如下

<?phpnamespace Vendor\Mail\Mailclass Mail{
    public function send(){
        
    }
}

以上范例是针对PHP5.3及以上版本

类的常量、属性和方法

类的常量命名规则都必须使用大写,单词间以下划线分割

范例如下

<?phpnamespace Vendor\Mail\Mailclass Mail{
    const PORT = "6210";
    const SERVER_IP = "0.0.0.0";
}
类的属性命名规则
  • 大写开头的驼峰式,如 $ServerIp
  • 下划线分割式,如 $server_ip
  • 小写开头的驼峰式,如 serverIp
  • 下划线开头的下划线分割式,如 $_server_ip

类的属性命名规则不做强制要求,但无论采用那种方式,都必须在一定的范围内保持一致。可以是同一个类或者是同一个项目亦或是整个技术团队,当然为了保持团队技术的一致性,我们还是建议整个团队的命名方式能够保持一致。

#类的方法命名规则

类的方法命名必须遵循小写开头的驼峰式。如 sendMail()

范例

<?php

namespace Vendor\Mail\Mail

class Mail{
    public function sendMail(){
    
    }
}