PHP編碼規範建議學習

###php編碼規範php

-------
* sql過長sql


```
$sql = <<<SQL
SELECT delivery_id
FROM d_test
WHERE delivery_id
IN (123,234)
GROUP BY delivery_id
HAVING SUM(send_number) <= 0;
SQL;
```
* if等控制結構條件過長api

```
if ($a > 0
&& $b > 0
&& $c > 0
&& $d > 0
&& $e > 0) {數組

}
```
* 方法或函數參數大於三個換行dom

```
public function tooLangFunction(
$valueOne = '',
$valueTwo = '',
$valueThree = '',
$valueFour = '',
$valueFive = '',
$valueSix = '')
{
//coding...
}
```
* 鏈式操做超過兩個函數

```
$this->nameTest->functionOne()
->functionTwo()
->functionThree();
``` 測試

* 方法(類/trait中)名稱必須符合 camelCase 式的小寫開頭駝峯命名規範。this

```
class StudlyCaps
{
public function studlyCaps()
{
// coding...
}
}
```編碼

* 函數名稱必須符合 snake_case 式的下劃線式命名規範。spa

```
function snake_case()
{
// coding...
}
```

* 類/trait/Interface的命名必須遵循 StudlyCaps 大寫開頭的駝峯命名規範。

```
class StudlyCaps
{

}

trait StudlyCaps
{

}

Interface StudlyCaps
{

}
```

* 私有的(private)方法(類/trait中)名稱必須符合 _camelCase 式的前置下劃線小寫開頭駝峯命名規範。

```
class StudlyCaps
{
private function _studlyCaps()
{
// coding...
}
}
```

* 方法名稱 第一個單詞 爲動詞。

```
class StudlyCaps
{
public function doSomething()
{
// coding...
}
}
```

* 每一個 namespace 命名空間聲明語句塊 和 use 聲明語句塊後面,必須 插入一個空白行。

```
namespace Standard;
// 空一行
use Test\TestClass;//use引入類
// 空一行
```

* 數組php5.4之後,使用 []代替array

```
$a = [
'aaa' => 'aaa',
'bbb' => 'bbb'
];
```

* 單引號多引號,
字符串中無變量,單引號
字符串中有變量,雙引號

```
$str = 'str';
$arg = "$str";
```

* 聲明類或者方法或函數添加描述&屬性描述&做者

```
/**
* 類描述
*
* desc
*/
class StandardExample
{
/**
* 常量描述.
*
* @var string
*/
const THIS_IS_A_CONST = '';

/**
* 屬性描述.
*
* @var string
*/
public $nameTest = '';

/**
* 構造函數.
*
* 構造函數描述
* @author name <email>
* @param string $value 形參名稱/描述
* @return 返回值類型 返回值描述
* 返回值類型:string,array,object,mixed(多種,不肯定的),void(無返回值)
*/
public function __construct($value = '')
{
// coding...
}

```
* api方法提供測試樣例example

```
/**
* 成員方法名稱.
*
* 成員方法描述
*
* @param string $value 形參名稱/描述
*
* @example domain/api/controller/action?argu1=111&argu2=222
*/
public function testFunction($value = '')
{
// code...
}

```

* 使用try…catch…

```
try {

// coding...

} catch (\Exception $e) {
// coding...
}
```

* 連續調用多個方法(大於3個)使用foreach

```
// 改寫doSome爲doSomething
class StandardExample
{
/**
* 方法列表
*
* @var array
*/
private $_functionList = [];

public function __construct($functionList = array())
{
$this->_functionList = $value;
}

public function doSome()
{
$this->functionOne();
$this->functionTwo();
$this->functionThree();
$this->functionFour();
}

public function doSomething()
{
foreach($this->_functionList as $function) {
$this->$function();
}
}

...
}
```

* 文件頂部進行版權聲明

```// +----------------------------------------------------------------------// | Company Name xx服務// +----------------------------------------------------------------------// | Copyright (c) 2017 http://domain All rights reserved.// +----------------------------------------------------------------------// | Author: name <email>// +----------------------------------------------------------------------```

相關文章
相關標籤/搜索