PHP 开发的实践标准:PSR-1

2017-03-09

基本的代码风格

1 概述

  • 文件必须只使用 <?php 和 <?= 标签。
  • 文件必须只使 用 UTF-8 无 BOM 的PHP代码。
  • 文件应该要么声明符号(类,函数,常量等), 或引起副作用(如生成输出,改变的.ini设置等),但不应该做两个。
  • 命名空间和类必须遵循 ”自动加载” PSR:[ PSR-4 ]。
  • 类名必须大驼峰,方法名小驼峰,类常量必须是大写字母且使用下划线分隔单词。

2 详情

PHP 标签

  • 必须把 PHP 代码放在 标签中。

编码

  • 所有 PHP 文件都必须使用 UTF-8 字符集编码,并且是无 BOM (Byte Order Mark, BOM) 格式编码。

使用 notepad++ 或者 IDE 都可以自动做到。

目的

  • 一个 PHP 文件可以定义符号(类,性状,函数,常量等),或者执行有作用的操作(生成结果,处理数据,连接外部服务,修改 int ,抛出异常,修改变量,读写文件)。

自动加载

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

我们只需为 PHP 符号选择合适的名称,并把定义符号的文件放在预期的位置。

  • 例如 PHP 5.3 之后必须使用命名空间
1
2
3
4
5
<?php
namespace Vendor\Model;
class Foo
{
}
1
2
3
4
<?php
class Vendor_Model_Foo
{
}

类,方法,常量,属性

  • 大驼峰(标题式):GetCar

方法

  • 小驼峰:setCarName

常量

  • 必须全部大写,使用下划线把单词分开:VERSION_APPLE

属性

  • 避免使用:$StudlyCaps, $camelCase, $under_score

这里不知如何简单表述,原文是:This guide intentionally avoids any recommendation regarding the use of $StudlyCaps, $camelCase, or $under_score property names.Whatever naming convention is used SHOULD be applied consistently within a reasonable scope. That scope may be vendor-level, package-level, class-level, or method-level.