PHP 開發規範(乾貨總結)

2021-10-06 20:53:43 字數 3055 閱讀 2170

本規範基於 psr 和實際專案經驗整理而成,目前已在公司內部推行使用,特分享如下。

分為編碼格式篇程式設計篇兩大部分。

基於 psr-1、psr-2、psr-12 。

<?php

/** * this is a example class

*/declare(strict_types=1);

namespace vendor\package;

use vendor\package\;

use vendor\package\somenamespace\classd as d;

use function vendor\package\;

use const vendor\package\;

class foo extends bar implements foointe***ce

elseif ($a > $b) else

}final public static function bar()

}

例:

class classname extends parentclass implements \arrayaccess, \countable

class classname extends parentclass implements

\arrayaccess,

\countable,

\serializable

class classname

class talker

}

方法:

例:

class classname

}

例:

abstract class classname

}

例:

bar();

$foo->bar($arg1);

foo::bar($arg2, $arg3);

$foo->bar(

$longargument,

$longerargument,

$muchlongerargument

);

左括號 ( 後一定不可有空格;

右括號 ) 前也一定不可有空格;

右括號 ) 與開始花括號必須在結構體主體後單獨成行;

每個結構體的主體都必須被包含在成對的花括號之中,哪怕只有一條語句;

if 斷行:if 中條件過多,可每個條件一行,第乙個條件需單獨成行,boolean操作符要麼全部放開頭,要麼全部結尾,不可混用;

switch:case語句 必須 相對switch進行一次縮排,而break語句以及case內的其它語句都 必須 相對case進行一次縮排;

例:

if ($expr1)  elseif ($expr2)  else 

if (

$expr1

&& $expr2

) elseif (

$expr3

&& $expr4

) switch ($expr)

while ($expr)

for ($i = 0; $i < 10; $i++)

foreach ($iterable as $key => $value)

try catch (firstexceptiontype $e) catch (otherexceptiontype $e)

例:

class foo extends bar implements foointe***ce

elseif ($a > $b) else

}}

例:

if ($a === $b)  elseif ($a > $b)
開始花括號必須寫在宣告的同一行,結束花括號必須緊跟主體結束的下一行;

引數列表和變數列表的左括號後以及右括號前,一定不可有空格;

引數和變數列表中,逗號前一定不可有空格,而逗號後必須要有空格;

引數列表以及變數列表 可以 分成多行,這樣,包括第乙個在內的每個引數或變數都 必須 單獨成行,而列表的右括號與閉包的開始花括號 必須 放在同一行;

例:

$closurewithargs = function ($arg1, $arg2) ;

$closurewithargsandvars = function ($arg1, $arg2) use ($var1, $var2) ;

$noargs_lon**ars = function () use (

$lon**ar1,

$longervar2,

$muchlongervar3

) ;$longargs_lon**ars = function (

$longargument,

$longerargument,

$muchlongerargument

) use (

$lon**ar1,

$longervar2,

$muchlongervar3

) ;$foo->bar(

$arg1,

function ($arg2) use ($var1) ,

$arg3

);

// 如果使用者存在

if ($user)

注:本規範沒有考慮歷史專案現狀,歷史專案可能在某些地方並不符合,可根據實際情況決定是否遵守。

乾貨 Android程式設計開發規範

約定activity.oncreate fragment.onactivitycreated 作為程式入口,不用寫入太多 盡量保持只呼叫init 方法,簡單明瞭展示呼叫過程。如 initdata initview 單個方法體不要過長 任何地方不要拼錯單詞 杜絕整個類 格式化 呼叫方法保持 臨近原則 ...

PHP開發規範

psr規範 1 概述 原始檔中php 的編碼格式必須只使用不帶位元組順序標記 bom 的utf 8。乙個原始檔建議只用來做宣告 類 class 函式 function 常量 constant 等 或者只用來做一些引起 的操作 例如 輸出資訊,修改.ini配置等 但不建議同時做這兩件事。命名空間 na...

PhoneGap開發總結 乾貨

1.因為是 web頁面,長按住某乙個文字區域會彈出複製選擇框 android 4.0 可以通過 遮蔽 body 2.通過html標籤移除快取的影響 3.通過 active偽類來實現 按鈕 按下的樣式切換 4.通過 給按鈕新增震動 提高使用者使用感受 vibrate bind tap function...