美文网首页
PSR规范(1)-基础编码标准

PSR规范(1)-基础编码标准

作者: wade1000 | 来源:发表于2018-12-06 23:33 被阅读0次

    PSR规范制定了PHP代码的相关标准,以保证共享的PHP代码间可以有较高阅读性和技术互通性。

    本文中会用到的几个规范等级:

    等级 本文描述
    MUST,MUST NOT 必须、绝不能
    SHOULD、SHOULD NOT 应该、不该
    MAY、OPTIONAL 可以,可选(本文出现较少)

    基础编码标准

    1. 概览

    • PHP代码文件必须使用<?php和<?=开头
    • PHP必须使用不带BOM的UTF-8编码格式
    • 一份PHP代码文件中应该要么只定义类、函数、常量等声明,要么就只写会产生副作用的操作(如输出和改变.ini文件中的配置),两者只能选其一
    • 命名空间和类必须符合自动加载规范之一 PSR:[PSR-0, PSR-4]
    • 类名必须以StudlyCaps驼峰命名规则
    • 类中的常量必须使用大写,单词间用下划线分隔
    • 方法名必须以camelCase驼峰命名

    2.文件

    • PHP代码必须使用长标签<?php ?>或者<?= ?>短标签,绝不能使用其他标签
    • PHP必须且只能使用不带BOM的UTF-8编码格式
    • 一份PHP代码文件中应该要么只定义类、函数、常量等声明,要么就只写会产生副作用的操作(如输出和改变.ini文件中的配置),两者只能选其一;
      副作用表示:只通过引入的文件执行相关逻辑,不直接声明类、函数和常量等;
      副作用包括但不仅限于:1)生成输出,如echo;2)引用外部文件require和include;3)修改ini文件配置;4)读取或者写入文件;5)修改全局或静态变量;6)连接外部服务
      以下是反例:声明函数的同时执行了包含副作用的操作
    <?php
    // side effect: change ini settings
    ini_set('error_reporting', E_ALL);
    
    // side effect: loads a file
    include "file.php";
    
    // side effect: generates output
    echo "<html>\n";
    
    // declaration
    function foo()
    {
        // function body
    }
    

    以下是正例:只声明了函数

    <?php
    // declaration
    function foo()
    {
        // function body
    }
    
    // conditional declaration is *not* a side effect
    if (! function_exists('bar')) {
        function bar()
        {
            // function body
        }
    }
    

    3.命名空间和类

    • 命名空间和类必须符合自动加载规范之一 PSR:[PSR-0, PSR-4]
      未完待续....

    相关文章

      网友评论

          本文标题:PSR规范(1)-基础编码标准

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