[TOC=2]
## 1. 概述
文件必须只使用 `<?php` 和 `<?= ` 标签。
对于 PHP 代码,文件必须仅使用没有 BOM 的 UTF-8。
* 文件应该任一声明的符号(类,函数,常量等)或引起副作用(例如产生的输出,修改的 .ini 设置等),但不应该一举两得。
* 命名空间和类必须遵循“自动加载”PSR:[ PSR-0, PSR-4 ]。
* 类名必须在声明中声明 `StudlyCaps`。
* 类常量必须以全部大写形式用下划线分隔符声明。
* 必须声明方法名称 `camelCase`。
## 2. 文件
### 2.1 PHP标签
PHP 代码必须使用长 `<?php ?>` 标签或短回声标签; 它不能使用其他标签变体。`<?= ?>`
### 2.2 字符编码
PHP 代码必须只使用没有 BOM 的 UTF-8。
### 2.3 副作用
一个文件应该声明新的符号(类,函数,常量等)并且不会产生其他副作用,或者它应该执行带副作用的逻辑,但是不应该同时执行这两个操作。
短语“副作用”意味着仅仅通过包括 文件来执行与声明类,函数,常数等不直接相关的逻辑。
“副作用”包括但不限于:生成输出,显式使用 `require` 或 `include` 连接外部服务,修改 ini 设置,发出错误或异常,修改全局或静态变量,读取或写入文件等等。
以下是具有声明和副作用的文件示例;
即,要避免的一个例子:
~~~php
<?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
<?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 ]。
这意味着每个类本身都在一个文件中 ,并且位于至少一个级别的命名空间中:顶级供应商名称。
类名必须在声明中声明 `StudlyCaps`。
为 PHP 5.3 编写的代码,必须使用正式的命名空间。
例如:
~~~php
<?php
// PHP 5.3 and later:
namespace Vendor\Model;
class Foo
{
}
~~~
代码 5.2.x 书面和前,应使用伪命名空间约定
的 Vendor_ 前缀上的类名。
~~~php
<?php
// PHP 5.2.x and earlier:
class Vendor_Model_Foo
{
}
~~~
## 4.类常量,属性和方法
术语“class”指的是所有类,接口和特征。
### 4.1 常量
类常量必须以全部大写形式用下划线分隔符声明。
例如:
~~~php
<?php
namespace Vendor\Model;
class Foo
{
const VERSION = '1.0';
const DATE_APPROVED = '2012-06-01';
}
~~~
### 4.2 属性
本指南有意避免关于使用任何建议
`$StudlyCaps` ,`$camelCase` 或 `$under_score` 属性名称。
无论使用何种命名约定,都应该在
合理的范围内始终如一地应用。该范围可以是供应商级别,包级别,类级别
或方法级别。
### 4.3 方法
必须声明方法名称 `camelCase()`。
- 文档说明
- Java 相关
- 环境配置
- PHP 相关
- 开发规范
- PSR-1: 基本编码标准
- PSR-2: 编码风格指南
- PSR-3: 记录器接口
- PSR-4: 自动加载器
- 部分注解
- 命名空间
- 自动加载
- 环境搭建
- phpstudy
- sublime text3
- Centos6.*
- Centos7.*
- redis 安装
- 在Linux上安装NodeJS
- 安装Crontab UI
- tomcat
- Composer
- 开发优化
- 扩展使用
- Yaconf
- 开发安全
- 经典案例
- 站内信设计
- 微擎相关
- Linux 相关
- 基本常用
- wget
- crontab
- Systemd
- yum
- cat && tac
- kill
- tail
- cat
- vim
- nginx
- 前端相关
- Grid 布局
- Flex 布局
- 杂项
- JS 位运算
- JS 基础
- Vue
- Axios
- 常用正则
- 命名参考
- sass
- 简单技巧
- Web Worker
- HTTP
- Content-Type
- 状态码
- MySql 相关
- 连接操作
- 用户相关
- 数据库表
- 字段操作
- 时间函数
- 文档解读
- 命令
- 优化
- 数据库优化
- 电脑使用
- 系统优化
- 软件卸载
- 并发优化