摘要:開發規范整理代碼樣式規范編碼基本規范代碼必須遵守。申明相關規范命名空間申明和使用在聲明下面必須有一個空行,并且聲明代碼塊下面也必須有一個空行空格空格類的申明類的左花括號必須放到下一行,右花括號必須放在類主體的下一行。
PHP 開發規范整理
代碼樣式規范
編碼基本規范
a、代碼必須遵守 PSR-1。
b、文件編碼Unicode (UTF-8) 編碼保存。同時不要使用 字節序標記(BOM)
c、代碼必須使用4個空格的縮進,而不是制表符。
d、一行代碼長度不應硬性限制;軟限制必須為120個字符;也應當是80個字符或者更少。
2、申明相關規范
2.1 命名空間申明和使用
a、 ##在namespace聲明下面必須有一個空行,并且use聲明代碼塊下面也必須有一個空行
namespace frontendcontrollers;
.....空格
use Yii;
.....空格
2.2 類的申明
a、類的左花括號必須放到下一行,右花括號必須放在類主體的下一行。
b、方法的左花括號必須放在下一行,右花括號必須放在方法主體下面。
c、術語“類”指所有的類,接口( interface ) 抽象類( abstract ) 和 特性( traits )
class DbMysql
{
.....代碼
}
interface DbMysql
{
.....代碼
}
abstract DbMysql
{
.....代碼
}
traits DbMysql
{
.....代碼
}
2.3 類的擴展和繼承
a、一個類的extends和implements關鍵詞必須和類名在同一行。
b、類的左花括號必須放在下面自成一行;右花括號必須放在類主體的后面自成一行。
class ClassName extends ParentClass implements ArrayAccess, Countable
{
.....代碼
}
c、implements一個列表可以被拆分為多個有一次縮進的后續行。如果這么做,列表的第一項必須要放在下一行,并且每行必須只有一個接口。
class ClassName extends ParentClass implements
ArrayAccess,
Countable,
Serializable
{
.....代碼
}
2.4 方法申明
a、所有的屬性和方法必須有可見性(譯者注:Public, Protect, Private)聲明
b、在參數列表中,逗號之前不可有空格,逗號之后必須要有一個空格。
c、方法中有默認值的參數必須放在參數列表的最后面。
class DbMysql
{
public function getUser($arg1, &$arg2, $arg3 = [])
{
.....代碼
}
}
b、abstract和final聲明必須在可見性之前;
class DbMysql
{
final public function getUser()
{
.....代碼
}
}
c、static聲明必須在可見性之后
靜態 static 方法應該聲明其作用域,且不應該再被聲明為 private 私有,而應該為 protected 或者public
如果只是不想被子類繼承,則應該用 final 聲明它們
class DbMysql
{
public static function getUser()
{
.....代碼
}
}
3、命名規范
3.1 普通變量
a. 所有字母都使用小寫;
b. 對于一個變量使用多個單詞的,使用’_"作為每個詞的間隔
例如:$base_dir、$red_rose_price等
3.2 局部變量
a. 所有字母使用小寫;
b. 變量使用’"開頭;
c. 多個單詞組成的局部變量名使用’"作為每個詞間的間隔
例子:$_base_dir、$_red_rose_price等。
3.3 全局變量
全局變量應該帶前綴’g",知道一個變量的作用域是非常重要的
例如
global $g_log_level;
global $g_log_path;
3.4 全局常量
a. 所有字母使用大寫
b. 全局變量多個單詞間使用’_"作為間隔
例子:$BASE_DIR、$RED_ROSE_PRICE等
3.5 函數
a. 所有字母都使用小寫
b. 對于一個變量使用多個單詞的,使用’_"作為每個詞的間隔
c. 函數的命名建議使用動詞+名詞的方式,如get_user_img。
完成一組功能的函數放到一個文件中,存放函數的文件采用function_name.func.php命名
3.6 類
a. 以大寫字母開頭;
b. 多個單詞組成的變量名,單詞之間不用間隔,各個單詞首字母大寫。
例子:class MyClass 或class DbOracle等。
3.7 方法
a. 首字母小寫;
b. 多個單詞間不使用間隔,除第一個單詞外,其他單詞首字母大寫
例子:function myFunction ()或function myDbOracle ()等
4、控制結構申明
4.1. if,elseif,else
a、一個if結構看起來應該像下面這樣。注意括號,空格,花括號的位置;
b、并且else和elseif和前一個主體的右花括號在同一行。
if ($expr1) {
// if body
} elseif ($expr2) {
// elseif body
} else {
// else body;
}
關鍵詞elseif應該替代else if使用以保持所有的控制關鍵詞像一個單詞。
4.2. switch,case
a、一個switch結構看起來應該像下面這樣。注意括號,空格和花括號。
b、case語句必須從switch處縮進,并且break關鍵字(或其他中止關鍵字)必須和case主體縮進在同級。
c、如果一個非空的case主體往下落空則必須有一個類似// no break的注釋。
switch ($expr) {
case 0:
echo "First case, with a break";
break;
case 1:
echo "Second case, which falls through";
// no break
case 2:
case 3:
case 4:
echo "Third case, return instead of break";
return;
default:
echo "Default case";
break;
}
4.3. while,do while
a、一個while語句看起來應該像下面這樣。注意括號,空格和花括號的位置。
while ($expr) {
// structure body
}
b、同樣的,一個do while語句看起來應該像下面這樣。注意括號,空格和花括號的位置。
do {
// structure body;
} while ($expr);
4.4. for
a、一個for語句看起來應該像下面這樣。注意括號,空格和花括號的位置。
for ($i = 0; $i < 10; $i++) {
// for body
}
4.5. foreach
a、一個foreach語句看起來應該像下面這樣。注意括號,空格和花括號的位置。
foreach ($iterable as $key => $value) {
// foreach body
}
4.6. try, catch
a、一個try catch語句看起來應該像下面這樣。注意括號,空格和花括號的位置。
try {
// try body
} catch (FirstExceptionType $e) {
// catch body
} catch (OtherExceptionType $e) {
// catch body
}
5、編碼習慣
5.1、變量使用
a.所有的變量均需要先申明后使用
b.對于數組或對象,在使用一個不確定的key時,首先進行isset()的判斷,然后再使用
例子:$var = ""; isset($val) ? $val : "";
5.2、變量的輸入輸出
a.不推薦直接使用$_GET、$_POST或者$_REQUEST獲取值
b.所有的輸入輸出都必須使用框架封裝的方法來實現
5.3、字符串相關
a.字符串盡量使用單引號
b.如果字符串中需要使用變量,例如:$val = "tips:{$title}";
6. 閉包( 參考 )
閉包在聲明時function關鍵詞之后必須有一個空格,并且use之前也需要一個空格。
左花括號必須在同一行,右花括號必須在主體的下一行。
參數列表和變量列表的左括號之后不可有空格,其右括號之前也不可有空格。
在參數列表和變量列表中,逗號之前不可有空格,逗號之后必須有空格。
閉包帶默認值的參數必須放在參數列表后面。
一個閉包聲明看起來應該像下面這樣。注意括號,空格和花括號的位置。
$closureWithArgs = function ($arg1, $arg2) {
// body
};
$closureWithArgsAndVars = function ($arg1, $arg2) use ($var1, $var2) {
// body
};
參數和變量列表可以被分成多個帶一次縮進的后續行。如果這么做,列表的第一項必須放在下一行,并且一行必須只放一個參數或變量。
當最終列表(不管是參數還是變量)被分成多行,右括號和左花括號必須夾帶一個空格放在一起自成一行。
下面是一個參數和變量列表被分割成多行的示例。
$longArgs_noVars = function (
$longArgument,
$longerArgument,
$muchLongerArgument
) {
// body
};
$noArgs_longVars = function () use (
$longVar1,
$longerVar2,
$muchLongerVar3
) {
// body
};
$longArgs_longVars = function (
$longArgument,
$longerArgument,
$muchLongerArgument
) use (
$longVar1,
$longerVar2,
$muchLongerVar3
) {
// body
};
$longArgs_shortVars = function (
$longArgument,
$longerArgument,
$muchLongerArgument
) use ($var1) {
// body
};
$shortArgs_longVars = function ($arg) use (
$longVar1,
$longerVar2,
$muchLongerVar3
) {
// body
};
注意如果在函數或者方法中把閉包作為一個參數調用,如上格式規則同樣適用。
$foo->bar(
$arg1,
function ($arg2) use ($var1) {
// body
},
$arg3
);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21841.html
摘要:本文目的是通過自己寫的一個的簡單的庫花密密碼生成工具,來學習我認為的庫開發的一些規范,以及上持續構建你的項目的一些方法。給自己的項目開啟持續構建。包發布以及當你的代碼完成后,測試完成后。 本文目的是通過自己寫的一個php的簡單的庫(花密密碼生成工具), 來學習我認為的php庫開發的一些規范,以及github上持續構建你的項目的一些方法。其實是為了顯示下邊一系列的的徽章 showImg(...
摘要:今天這篇分享將簡單地梳理一下規范,并介紹一個代碼檢查工具,結合以及進行實踐。目前流行的一些規范是的簡寫,由組織制定的規范,是開發的實踐標準。目前已表決通過了套標準,已經得到大部分框架的支持和認可。 > 作為一個新手,寫出規范的代碼也是一門必修課,除了閱讀相應的代碼規范文檔之外,充分利用相關的工具能使得進階之路事半功倍。今天這篇分享將簡單地梳理一下 PHP 規范,并介紹一個代碼檢查工具 ...
摘要:標準規范簡介是的簡寫,由組織制定的規范,是開發的實踐標準。具體標準有有了統一編碼風格規范,更有利于查看和學習各個框架或類庫,不不需要每次都適應新的編碼風格。同時在開發團隊內部使用統一的編碼規范更有利于代碼審查版本控制團隊內部交流。 PHP 標準規范 PSR PSR 簡介 PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP...
摘要:的使命是實現框架之間的互操作性。個人和官方都認為開發者應該遵循更為嚴格的代碼標準,在現代的生態系統中,風格統一,可以更好的讓其他開發者理解代碼。記錄的消息用于診斷檢查和排除應用中的操作穩定性和性能方面的問題。 原文是在我自己博客中,小伙伴也可以點閱讀原文進行跳轉查看,還有好聽的背景音樂噢~ ????PSR是PHP Standards Recommendation的簡稱,意為PHP推薦標...
閱讀 2196·2021-11-15 11:36
閱讀 1366·2021-10-14 09:42
閱讀 4178·2021-09-30 09:52
閱讀 1690·2021-09-24 10:24
閱讀 941·2021-09-02 09:56
閱讀 2664·2019-08-30 13:11
閱讀 3043·2019-08-30 13:06
閱讀 929·2019-08-30 12:56