咱們寫代碼的時候,一個好的編碼規範,對咱們來講可以起到不少意向不到的效果。至少會有一下的好處:
一、提升咱們的編碼效率。整齊劃一的代碼方便咱們進行復制粘貼嘛!
二、提升代碼的可讀性。
三、顯示咱們專業。別人看到了咱們的代碼,發現整個代碼的書寫流程都整齊劃一,瞬間逼格就上去了!
四、方便團隊協同工做。你們使用同一的規範,這樣就消除了五花八分的書寫方式,同一協調!php
其實咱們所寫的php腳本,其實也就是由兩大塊組成的,即對代碼的書寫、對代碼的註釋!不一樣的框架,甚至不一樣的公司,對這方面都會有所不一樣,這裏只是已將之言,僅僅是對本身的書寫規範進行一個總結!但願能對其餘的朋友以啓示框架
文件夾的命名:
文件夾同一使用小寫字母。如存放控制器的文件夾,直接命名爲controller便可編輯器
文件的命名:
若是是類文件的話,那麼文件的命名應該同類名稱保持一致,統一使用大駝峯。如Session.class.php , 對應類名稱爲Session,
若是是普通的工具腳本,那麼統一使用小駝峯,如common.phpide
類名稱的命名:
類名稱同一使用大駝峯,Cookie類工具
方法名的命名:
統一使用小駝峯,通常使用 動詞 + 名次 的形式來描述該方法的功能,如sendMessage,發送短信。
在面向對象中,遵循一樣的規則,可是個別地方有所區別:
public getUserName()
protected _getTotalAmount()
private _setBlanceAmount()佈局
變量的命名規範:
關於變量,咱們須要多說幾點:
一、不管在面向對象仍是非面向對象的語法中,變量統一使用小駝峯,如:$workYears。
可是在面向對象中又有所不一樣,public 、 protected 、 private ,protected或者private屬性的時候,前面加上了 _ 做爲區別編碼
public $startPosition = 1; protected $_salaryAmount =1000; private $_sex = 'formale';
二、若是是常量的話,統一使用大寫,中間使用下劃線進行分割。spa
define('CURRENT_SCRIPT', 'index.php'); const TRANSACTION_TYPE = 'income';
三、全局變量,使用大駝峯,前綴加上 _ ,全部的單詞首字母大寫。由於知道一個變量的做用域是很是重要的,因此局部變量和全局變量應該很明顯的進行分開!代碼規範
$_System_Config; $_Root_Path;
縮進符
關於編碼的縮進符號,咱們統一使用製表符縮進!也許有的人會問爲何不適用空格縮進的呢?
緣由很簡單,大部分的編輯器都支持製表符等於多少個空格,而使用空格就沒得調了!code
運算符號
全部的兩元運算符號,都應該先後使用空格進行
$name = 'zero';
$age > 18 ? 'adult' : 'children';
常見的流程語句規劃
咱們約定,全部的流程語句的花括號都單獨佔據一行。理由:若是遇到較爲複雜的業務邏輯,花括號會出現不少的嵌套,這樣一來咱們會混淆個個對應的花括號!
一、分支語句
if($age >= 18 && $age <= 30) { echo 'young man'; } else if($age > 30 && $age <= 60) { echo 'middle aged'; } else { echo 'old man'; } //下面這段代碼高手咱們一個問題,在if語句中,即便在能夠不要花括號的狀況下,花括號也是要寫上的 if($age > 60) { echo 'I am very old'; }
switch($status) { case 'forbiden': echo 'login forbidden'; break; case 'normal': echo 'login in'; break; default: echo 'status is wrong' : break; }
二、循環語句
while($condition) { statesments......; }
foreach($arrayList as $arrayKey => $arrayItem) { states......; }
do { statements......; } while($condition)
for($start; condition; changenumber) { statements......; }
不少人說好的代碼是不須要註釋的,其實,我的認爲這是一句很扯淡的話(也可能他是對的,除非整個團隊就他一我的,他包辦了一切,不用看別人的代碼)。
我的的觀點是:多寫註釋,不管是對團隊的其餘人,仍是對本身都是很是友好的!
根據我的的經驗來看,註釋至少有如下幾個做用:
一、有利於提升代碼的可讀性,畢竟讀你的註釋要比讀你的代碼要容易的多!
二、有利於規劃本身的代碼佈局!之因此這麼說,是由於和代碼註釋的種類有關。「有利於代碼的佈局」,這種看着有點懸的事,光說是說不明白的,咱們須要實實在在的例子作支撐!
三、因爲咱們的註釋規範是按照phpdocumentor的要求,因此經過這個工具,還能夠生成一份對代碼的整體說明,至關於一個使用說明書!g
代碼註釋的種類
一、塊註釋
塊註釋,我的認爲主要用在了三個地方。對php腳本的描述、對一個大的功能模塊的描述、在一行以內不能寫完註釋的時候,也應該放在塊註釋中
二、行註釋
行註釋,我的認爲他是配合塊註釋進行工做的!通常用於描述一個大的功能模塊的具體細節!
實戰的案例
關於phpdocumentor語法的具體使用細節,這裏就很少說了,官網上說的再清楚不過了
從上面的例子中咱們能夠看一下代碼的佈局大體是怎麼回事,可是還須要咱們在實踐中慢慢摸索