> 參考:[ThinkPHP開發規范](http://document.thinkphp.cn/manual_3_2.html#develop_standard)
1。**普通變量**采用小寫字母,多單詞以“`_`”連接,例如:`$base_dir`、`$red_rose_price`等。
2。**靜態變量**以“`s_`”開頭,字母小寫,多單詞以“`_`”連接,例如:`$s_base_dir`、`$s_red_rose_prise`等。
3。**局部變量**以“`_`”開頭,字母小寫,多單詞以“`_`”連接,例如:`$_base_dir`、`$_red_rose_price`等。
4。**全局變量**以“`G_`”開頭,字母大寫,多單詞以“`_`”連接,知道一個變量的作用域是非常重要的。例如:`global $G_LOG_LEVEL`、`global $G_LOG_PATH`。
5。**session**以“`S_`”開頭,字母大寫,多單詞以“`_`”連接,例子:`$S_BASE_DIR`、`$S_RED_ROSE_PRICE`等。
6。確保文件的命名和**調用大小寫一致**,是由于在類Unix系統上面,對大小寫是敏感的(而ThinkPHP在調試模式下面,即使在Windows平臺也會嚴格檢查大小寫);
7。 **類**的聲明按照“帕斯卡命名法”,例如:`class MyClass` 或 `class DbOracle`等。
8。**類文件**要求以`.class.php`為后綴,使用駝峰法命名,并且首字母大寫,例如 `DbMysql.class.php`。
9。通常下劃線開頭的方法屬于**私有方法**:`_parseType`。
10。**方法**的命名使用“駝峰法”,或者使用下劃線“_”連接,例如 `getUserName`。
11。**函數**的命名使用小寫字母和下劃線的方式,例如 `get_client_ip`。
12。**屬性**的命名使用駝峰法,并且首字母小寫或者使用下劃線“`_`”,例如 `tableName`、`_instance`,通常下劃線開頭的屬性屬于**私有屬性**;
以雙下劃線“`__`”打頭的函數或方法作為**魔法方法**,例如 `__call` 和 `__autoload`。
13。**常量**以大寫字母和下劃線命名,例如 ``HAS_ONE``和 `MANY_TO_MANY`。
14。類的**命名空間**地址和所在的路徑地址一致,例如`Home\Controller\UserController`類所在的路徑應該是`Application/Home/Controller/UserController.class.php`。
15。**配置參數**以大寫字母和下劃線命名,例如`HTML_CACHE_ON`。
16。**語言變量**以大寫字母和下劃線命名,例如`MY_LANG`。以下劃線打頭的語言變量通常用于**系統語言變量**,例如 `_CLASS_NOT_EXIST_`,
沒有強制的規范,可以根據團隊規范來進行。
17。**類名和文件名一致**(包括上面說的大小寫一致),程序中所有的類名唯一,例如`UserController`類的文件命名是`UserController.class.php`, ``InfoModel``類的文件名是`InfoModel.class.php`, 并且不同的類庫的類命名有一定的規范。
~~~
//類統一采用:DemoTest.class.php
//接口統一采用:DemoTest.interface.php
//其他按照各自的方式:demoTest.{style}.php
~~~
18。**數據表和字段**采用小寫加下劃線方式命名,并注意字段名不要以下劃線開頭,例如 think_user 表和 user_name字段是正確寫法,類似 _username 這樣的數據表字段可能會被過濾。
19。確保文件的命名和調用大小寫一致,是由于在**類Unix系統上面,對大小寫是敏感的**;
20。**PHP關鍵詞**及系統函數全部小寫,`false/true/null`也全部小寫。
21。所有的PHP程序**代碼塊標記**均使用`<?php`,(短標簽容易和xml混淆,php從5.4開始默認不支持短標記)。
22。對于只有php的代碼文件,建議省略結尾處的‘`?>`’。這是為了防止多余的空格或其他字符影響到代碼。
23、**抽象類**應以Abstract開頭。
24。**接口**命名規則:
i)采用和類相同的命名規則,但在其命名前加‘`i`’字符,表示接口。如:iDataBase。
ii)盡量保持和實現它的類名一致。
接口文件可使用“iDatabase.interface.php”命名。
**25、程序中所有類名唯一。**