從設計之初,PHP被廣泛用於開發基於Web的應用程序。 由於PHP是一種腳本語言,開發的時候必須遵守一些規范。
本文將討論常用的良好的代碼習慣,或者稱為代碼規范,在PHP領域。
1,錯誤報告開啟
錯誤報告是在PHP中一個非常有用的功能,應同時在開發階段啟用。 這可以幫助我們確定我們的代碼中的問題。 最常用的功能是“E_ALL”,這有助於我們發現所有的警告和嚴重錯誤。 必須指出的是,我們把我們的代碼投入上線前,我們應該關閉這個功能提示,否則會在浏覽器上的暴漏所有潛在錯誤及警告。
2,使用DRY原則
‘Do not Repeat Yourself’,DRY原則指的是不要重復你的代碼.。 這個概念是一個非常有用的編程概念,可硬應用在任何編程語言,如Java,C#或PHP均可以。 使用DRY原則,確保我們在程序中沒有冗余的代碼。
違反 DRY 原則的解決方案通常被稱為 WET,指代“write everything twice”,我們寫的相同功能的代碼會出現多次以上,別大家戲稱是喜歡打字。
讓我們看看到下面的代碼:
Listing1:
WET代碼方式:
1
$mysql
= mysql_connect (
'localhost'
,
'mysqladmin_uid'
,
'mysqladmin_pwd'
);
2
mysql_select_db(
'DB_NAME'
)
or
die
(
Sorry !! No database selected!
);
下面使用DRY 原則優化代碼:
1
$db_host
=
' localhost '
;
2
$db_user
=
' mysqladmin_uid '
;
3
$db_password
=
' mysqladmin_pwd '
;
4
$db_database
=
' DB_NAME '
;
5
$mysql
= mysql_connect(
$db_host
,
$db_user
,
$db_password
);
6
mysql_select_db(
$db_database
);
3,適當的使用縮進及空格
在使用任何一種編程語言編寫代碼時,必須確保代碼在需要的地方提供在必要適當的縮進和足夠的空格。 以增加了代碼的可讀性,用更有效的方式管理代碼。
4,使用有意義和一致的命名標准
正如任何編程語言,PHP的老兵還建議我們遵循有意義的命名標准。 我們有兩個主要方式在實現這個要求:
A.駝峰式
在這種方法中,第一個字母是小寫,每一個單詞的第一個字母其後以大寫。
Listing2:
1
public
class
MyClass {
2
public
void methodName(String argName) {
3
}
4
}
B.下劃線式
在這種方法中,我們把每兩個詞之間的下劃線(“_”)。 使用這種方法時,代碼可以被修改如下:
Listing3:使用下劃線代碼片段
1
public
class
MyClass {
2
public
void method_name(String arg_name) {
3
}
4
}
5,避免深層嵌套
使用任何開發語言,多級嵌套降低了代碼的可讀性。 任何開發者都應應避免使用深層嵌套。
Listing4:代碼片段具有多級嵌套
01
02
class
MyClass {
03
public
function
method_name(
$arg_name
) {
04
if
(
is_writable
(
$folder
)) {
05
if
(
$fp
=
fopen
(
$file_location_path
,
'w'
)) {
06
if
(
$stuff
= extractSomeConditionalStuff ()) {
07
if
(fwrite (
$fp
,
$stuff
)) {
08
// ...
09
}
else
{
10
return
false;
11
}
12
}
else
{
13
return
false;
14
}
15
}
else
{
16
return
false;
17
}
18
}
else
{
19
return
false;
20
}
21
}
22
}
23
?>
上面的代碼是一個簡單的嵌套代碼。 我們可以看到它是非常困難的,如果塊結束哪裡的身影。 為了更好的可讀性,讓我們修改的代碼:
Listing5:代碼片段,避免多級嵌套
01
function
method_name (String arg_name) {
02
// ...
03
if
(!
is_writable
(
$folder
)) {
04
return
false;
05
}
06
if
(!
$fp
=
fopen
(
$file_location_path
,
'w'
)) {
07
return
false;
08
}
09
if
(!
$stuff
= extractSomeConditionalStuff ()) {
10
return
false;
11
}
12
if
(fwrite (
$fp
,
$stuff
)) {
13
// ...
14
}
else
{
15
return
false;
16
}
17
}
6,添加應有的注釋
開發中,請確保你的源代碼中有足夠的行內注釋。 這是一個應該遵守的標准做法。 這有助於深入分析代碼,因為通常情況下,負責編碼的人不會一直保持不變。 即使同一個人被要求在代碼中進行一些簡單的修改,行內的注釋總是會有助於理解當時編寫代碼是用來做什麼的。 為了在PHP中使用較好的注釋標准,建議大家去查看一些標准的PHP文檔包,例如phpDocumentor。
7,不要把PHPINFO()函數在網站根目錄
phpinfo()函數是一個非常重要的功能,應小心使用。 使用此功能,任何人都可以看到服務器環境的詳細信息。它最好始終放在
一個安全位置的文件中使用,一旦開發完成上線後,應該刪除這段代碼使用。
8,永遠不要相信用戶
如果您的應用程序涉及任何用戶輸入,務必要編寫安全的代碼以處理這種方式,因為它包含各種可能的輸入。 想要避免程序被攻擊注入或者破壞數據完整性,一定要驗證過濾數據的格式。大家可以看下這篇文章《可怕的代碼注入方式》
9,合理使用緩存機制
良好的編程方法總是建議使用緩存機制緩存幫助我們獲得更好的性能。
在PHP的世界,緩存使用來實現:
Memcached的 —— 一個在使用小數據塊存儲鍵值對存 儲。
APC —— 可選PHP緩存為開放的PHP操作碼緩存
XCache —— 一種快速可靠的PHP操作碼緩存
Zend Cache – API,用於實現先進的高速緩存功能的集合。
eAcclerator – 開源的緩存工具
10,避免復制已有變量
將預定義變量復制到具有較小的名字的局部變量不是一個好的編程習慣。 這對應用程序的性能產生不利影響。 讓我們來看看下面的代碼片段:
Listing6:復制已有變量
1
$desc
=
strip_tags
(
$_POST
[
'PHP description'
]);
2
echo
$desc
;
上面的代碼的代碼是復制一個變量為局部變量不必要的例子。 這是不是一個好的做法。同樣的效果可以通過使用下面的代碼來實現:
1
echo
strip_tags
(
$_POST
[
'PHP description'
]);
11,使用框架
框架是大量的研究後開發的,因此,他們被證明是問題較少。 它們使我們的開發更便捷,因為它們提供成熟的解決方案。 在PHP中有很多可用的框架。 在開發過程中,你應該利用這些。 其中的一個框架,被廣泛采用的是MVC或模型視圖控制器。
結論:
編程規范指導我們更有效的開發代碼。
遵循編程規范,確保應用程序的更好的性能。
正如在其他編程語言,要想創造出高質量的代碼,PHP也需要遵循這種良好的編程規范。