PHP中的PSR规范

本文详细介绍了PHP中的PSR规范,包括PSR-1的基本编码风格,PSR-2的编码扩展,PSR-3的日志接口,以及PSR-4的自动加载标准。PSR-1规定了PHP标签、命名空间、类名和方法命名的规则。PSR-2进一步扩展了代码格式化标准,如缩进、换行和命名约定。PSR-3定义了通用的日志接口。PSR-4则是关于自动加载的规范,通过命名空间映射文件路径来实现。文章还提供了编写PSR-4自动加载器的示例。
摘要由CSDN通过智能技术生成

PHP Standards Recommendation

什么是PSR?

PSR是PHP Standards Recommendation的简称,这个是php-fig组织制定的一套规范。至今,php-fig已经发布了五个规范:

  • PSR-0:自动加载标准,2014-10-21该标准已经被废弃,使用PSR-4替代,不再细讲
  • PSR-1:基本的编码风格
  • PSR-2:编码风格(更严格)
  • PSR-3:日志记录器接口
  • PSR-4:自动加载

PSR-1

PHP标签:
PHP代码必须放在<?php ?>标签或<?= ?>标签中。

编码:
PHP文件必须使用无BOMUTF-8编码。

副作用:
一个PHP文件可以定义符号(比如类、函数、常量等),或者执行只有唯一副作用的操作(比如输出结果、处理数据等),但是不能同时做这两件事,尽量是一个PHP文件的功能单一。在操作的时候尽量把变量、类、函数的声明分开,通过includerequire文件的方式来使用。

如下不符合规范:

<?php
// 改变设置
ini_set('error_reporting', E_ALL);

// 加载文件
include "file.php";

// 打印输出
echo "<html>\n";

// 声明
function foo()
{
    // function body
}

符合规范如下:

<?php
// 声明
function foo()
{
    // function body
}

// 条件判断
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}

命名空间和类:
命名空间和类必须遵循PSR-4自动加载器标准。

类的名称:
每个类都有自己的命名空间,且都在顶级命名空间下,类名必须使用驼峰式(CamelCase)。
PHP 5.3 及以上,必须使用正式的命名空间,例如:

<?php
// PHP 5.3 及以后
namespace Vendor\Model;

class Foo
{
}

PHP 5.3一下应该使用Vendor_开头的伪命名空间约定,例如:

<?php
// PHP 5.3以下
class Vendor_Model_Foo
{
}

常量:
常量必须全部是用大写,并且使用下划线(_)分开。例如:

<?php
namespace Vendor\Model;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';
}

类的方法:
类的方法必须使用小写字母开头的驼峰式(camelCase)命名。

PSR-2

PSR-2是对PSR-1的PHP的扩充。

贯彻PSR-1:
使用PSR-2代码标准之前要先贯彻PSR-1的代码标准。

文件和代码行:
PHP文件必须使用Unix风格的换行符(LF, linefeed),最后要有一个空行,仅包含PHP代码的文件而且不能使用PHP关闭标签?>,每行代码不应该超过80个字符,每行末尾不能有空格,每行只能有一条语句,可以在适当的地方添加空行提高代码的阅读性。

不加上?>关闭标签,可以避免意料之外的输出错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值