本規範基於 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...