PSR-1:基础编码标准

1、概述

  • 文件必须只允许使用<?php 或者 <?= 标签。
  • 文件必须只允许使用UTF-8编码,并且去除BOM头。
  • 文件应当或者声明符号(类,函数,常量等),或者引起副作用(例如:生成输出,修改.ini设置等),但是不应当同时出现。
  • 命名空间和类必须紧跟“自动加载”标准:[PSR-0, PSR-4]。
  • 类名必须声明类似于StudyCaps
  • 类中的常量必须全部由大写字母和下划线组成。
  • 方法名必须声明类似于camelCase

2、文件

  • 2.1 PHP标签

        PHP代码必须使用长标签<?php ?>或者输出-短标签<?= ?>。不能使用其他变异标签。

  • 2.2、编码

        PHP代码必须仅允许使用去除BOM的UTF-8编码。

  • 2.3、副作用(冲突)

        包括但不限于以下形式:生成输出,直接使用 require 或者 include ,连接外部服务,修改ini配置,产生错误或者异常,修改全局或静态变量,直接读写文件等等。

        以下是一个双重定义的副作用实例:

<?php
// side effect: 修改ini配置
ini_set('error_reporting', E_ALL);

// side effect: 加载一个文件
include "file.php";

// side effect: 直接输出
echo "<html>\n";

// 定义
function foo()
{
    // 函数体
}

        以下是一个正确的定义方式:

<?php
// 定义
function foo()
{
    // function body
}

// 条件式定义
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}

3、命名空间和类名

        命名空间和类都必须紧随“自动加载”PSR:[PSR-0, PSR-4]

        这就意味着,每个类都必须定义在一个独立的文件中,并且命名空间至少一个层级:顶级名称。

        类名必须以该种形式:StudyCaps 。

        PHP 5.3 以上的版本必须使用正式的命名空间。例如:

<?php
// PHP 5.3 and later:
namespace Vendor\Model;

class Foo
{
}

        PHP 5.2.* 或者之前的版本,应当使用伪命名空间惯例,类名需要以 Vendor_ 作为前缀。例如:

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

4、类中的常量、属性和方法

        “类”是指所有的类、接口、traits。

  • 4.1、常量

        类中的常量必须使用大写字母或下划线来定义。例如:

<?php
namespace Vendor\Model;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';
}
  • 4.2、属性

        形如:$StudyCaps $camelCase $under_score

  • 4.3、方法

        方法名必须定义为:camelCase()

转载于:https://my.oschina.net/u/877598/blog/918253

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值