Phalcon 编码标准¶
最后更新:2019-07-04
Phalcon 使用Zephir一种 Phalcon 团队发明并积极开发的语言编写的。因此,没有既定的编码标准供开发人员遵循。
在本文档中,我们概述了 Phalcon 用于编辑 Zephir 文件的编码标准。该编码标准是PSR-12的变体,由PHP-FIG
文件¶
- 文件只能使用不带 BOM 的 UTF-8。
- 文件名必须使用 StudlyCaps 命名法。
- 所有文件必须使用 Unix LF(换行符)作为行尾。
- 所有文件必须以一个空行结束。
- 文件夹也使用 StudlyCaps 命名,并且文件夹/子文件夹树遵循类的命名空间。
- 代码必须使用 4 个空格进行缩进,而不是制表符。
- 行长度应为 80 个字符或更少。行长度的硬性限制是 120 个字符。
- 命名空间声明后必须有一个空行,use 声明块后也必须有一个空行。
- 非空白行末尾不得有多余的空格。
- 可以添加空白行以提高可读性和表示相关的代码块。
- 每行不得包含多个语句。
类¶
- 类名必须使用 StudlyCaps 声明。
- 类的开括号必须放在下一行,闭括号必须在主体后下一行。
- 抽象类必须以前缀
Abstract
- 接口必须以后缀
Interface
常量¶
- 类常量必须全部大写,并用下划线分隔。
- 类常量必须出现在类的顶部。
- 类常量必须按常量名称的字母顺序排序。
属性¶
- 类属性必须用 camelCase 声明。
- 类属性必须按名称的字母顺序排序。
- 如果可能,属性必须有一个默认值。
- 如果可能,属性必须有一个 docblock 来定义它们的类型
@var
声明。 - 属性前面不得加下划线
_
。唯一的例外是如果属性名是一个保留关键字,例如default
,namespace
等等。
namespace Phalcon\Acl\Adapter;
use Phalcon\Acl\Adapter;
class Memory extends Adapter
{
/**
* @var string | null
*/
protected activeKey = "" { get };
}
方法¶
- 方法名必须用 camelCase 声明。
- 方法必须按字母顺序和可见性进行排序。顺序是
public
,protected
和private
.__construct
如果已定义,则必须位于类的顶部,以及其他任何 PHP 魔术方法(也按字母顺序排列)。 - 方法名前面不得加下划线
_
. - 所有方法都必须有一个返回类型。如果方法不返回任何内容,应标记为
void
- 方法的开括号必须放在下一行,闭括号必须在主体后下一行。
- 必须声明所有属性和方法的可见性;
abstract
和final
必须在可见性之前声明;static
必须在可见性之后声明。
abstract public function getElement() -> var;
final public function getElement() -> var;
public static function getElement() -> var;
- 控制结构关键字后面必须有一个空格;方法和函数调用后面则不能有。
- 控制结构的开括号必须在同一行,闭括号必须在主体后下一行。
- 控制结构如
if
条件表达式周围不得有括号,除非它是一个复杂的条件。
方法参数¶
- 在参数列表中,逗号前不得有空格,逗号后必须有一个空格。
- 每个方法在定义前必须声明其类型
- 具有默认值的方法参数必须位于参数列表的末尾。
- 参数列表可以跨多行拆分,其中每个后续行缩进一次。这样做时,列表中的第一项必须在下一行,并且每行只能有一个参数。
PHP 文件¶
测试之类的 PHP 文件必须遵守PSR-12.