PHP 代碼規範之PSR-1
阿新 • • 發佈:2018-08-08
接口 行為 修改配置 必須 use php method his psr-4 1.概述
1. 必須使用<?php ?> 或是<?=?>這兩種標簽 2. PHP代碼中必須使用UTF-8 without BOM 編碼方式 3. 每個文件建議只用來聲明(類class,函數function,常量constant等)或者只用來做一些輔助操作(輸出信息,修改配置等),但一個文件不建議同時做這兩件事 4. 命名空間Namespace和類class必須遵循"autoloading"PSR標準【PSR-0,PSR-4】 5. 類名(class)必須使用大駝峰命名法,如UserInfoController 6. 類中的常量必須只能用大寫字母和來命名 7. 方法名(method)必須使用駝峰命名法,如getUserInfo
2.文件
2.1PHP 標簽
PHP代碼中必須使用<?php ?> 或是<?=?>這兩種標簽
2.2字符編碼
PHP 代碼 必須 使用 UTF-8 without BOM 編碼
2.3文件的內容
規則建議一個文件只應該有一種行為,例如接口只做方法的定義,具體的功能在實現類中實現,建議不要把接口和實現寫在同一文件中
<?php class Fruit { public function __construct($type) { $this->_type = $type; } } $fruit=new Fruit(‘pinguo‘); ?>
這樣就是生命和使用混寫的,規則不建議這麽寫,而知把生命和使用放在兩個文件中
文件1:
<?php
class Fruit
{
public function __construct($type)
{
$this->_type = $type;
}
}
?>
文件2:
<?php
$fruit=new Fruit(‘pinguo‘);
?>
其他依次類推,次規則的目的是盡量使類和文件的功能單一化,盡量減小耦合,但是這樣也會造成類和文件爆炸的問題,這就需要需要對具體的項目進行平衡和考量
3、命名空間 namespace 和類名 class name
命名空間 Namespace 和類 class 必須 遵循”autoloading” PSR標準: [PSR-0, PSR-4].
這意味著每個文件中只能有一個類 class,並且每個類 class 至少要有一級命名空間 namespace:即一個頂級的 vendor name
類名(class)必須 使用大駝峰命名法,如 StudlyCaps
PHP5.3 之後的 必須 使用正式的命名空間 namespace,例:
<?php
// PHP 5.3 and later:
namespace Vendor\Model;
class Foo
{
}
PHP5.2.x 和之前的版本 建議 用偽命名空間 Vendor_ 作為類名的前綴
<?php
// PHP 5.2.x 及之前:
class Vendor_Model_Foo
{
}
4、類的常量 constant,屬性 property,方法 method
類 class 指所有的類 class,接口 interface 和特性 trait
4.1. 常量 constant
類中的常量 必須 只能用 大寫字母 和 _ 來命名,例:
<?php
namespace Vendor\Model;
class Foo
{
const VERSION = ‘1.0‘;
const DATE_APPROVED = ‘2012-06-01‘;
}
4.2. 屬性
類的屬性命名可以遵循 大寫開頭的駝峰式 (StudlyCaps),都應該在一定的範圍內保持一致。這個範圍可以是整個團隊、整個包、整個類或整個方法。
4.3. 方法
方法名稱必須符合 camelCase() 式的小寫開頭駝峰命名規範。
引用自:
https://www.php-fig.org/psr/psr-1/
PHP 代碼規範之PSR-1