1、方法命名
方法,指的是在類中定義的函數,方法的命名使用駝峰法,並且首字母小寫或者使用下劃線“_”,例如:getUserName( ),
_parseType( ),通常下劃線開頭的方法屬於私有方法;
2、函數命名
函數是指不在類中定義的函數,例如在公***文件中的函數。函數的命名使用小寫字母和下劃線的方式,例如 get_client_ip( );
3、變量命名
變量,也叫屬性。屬性的命名使用駝峰法,並且首字母小寫或者使用下劃線“_”,例如 tableName、_instance,通常下劃線開頭的屬
性屬於私有屬性;
4、常量命名
常量以大寫字母和下劃線命名,例如 HAS_ONE和 MANY_TO_MANY;
5、配置參數命令
配置參數以大寫字母和下劃線命名,例如 HTML_CACHE_ON = 1;
二、編碼風格規範
1、禁止出現多行空格
如果不是特殊需要,在代碼文件中禁止出現多行空格。
2、縮進
代碼中需要適當的縮進,否則會加大維護難度。
3、目錄結構
壹般框架都是有默認的目錄結構,非特殊情況不允許修改目錄結構,例如thinkphp默認的是MVC架構的目錄結構,避免由於更改目錄結
構帶來的維護困難。Controller文件放在Controller目錄 中,Model文件放在Model目錄中,View文件放在View目錄中,不要隨意更改
目錄的位置和目錄名稱。
三、安全
1、輸入框
所有的輸入框請設置最大長度,必填項請做必填的限制。例如帳號CHN00000001,只能輸入11位,那麽最大輸入長度只能為11,並且添
加required="required"屬性。
2、文本編輯器
前臺頁面盡量不要使用富文本編輯器,因為富文本編輯器可以輸入代碼,有很大的安全隱患。如果要使用,必須對提交內容進行過濾,例
如使用htmlspecialchars()進行過濾。
3、後臺接收參數
PHP從表單獲取url中獲取參數必須進行字段類型判斷。例如接收數字的參數不能含有其他字符,只能是數字,建議編寫公***的檢查接收
post和get參數的函數,對每壹個參數值進行驗證,防止註入惡意代碼。
接收長篇內容的變量,例如留言內容等變量時,必須進行特殊字符的過濾操作。比如strip_tags()、htmlspecialchars()、htmlentities()等
函數可以起作用,防止用戶註入惡意代碼進行跨站腳本攻擊。
4、權限控制
凡是需要登錄之後才可以訪問的頁面加載頁面之前必須做好登錄檢測,登錄超時的必須重新登錄。需要權限訪問的頁面和功能必須做好權
限控制和檢測。
四、並發和大流量處理
1、重復提交
為了防止用戶在提交表單時重復提交,表單必須設置提交驗證。例如商城提交訂單時,必須防止用戶重復提交。Thinkphp框架中提供表
單令牌的功能可以防止重復提交,原生php也可以在打開頁面前生成token,並保存在session,然後將token傳遞到頁面表單字段,在表
單提交時將token壹起提交,在後臺接收時驗證token,驗證後銷毀session的保存的token。
2、session
壹次性驗證的session使用後必須銷毀,例如短信驗證,表單驗證等,防止壹次性session被重復利用,例如在用戶在註冊時如果不銷毀短
信驗證碼session,用戶可以用同壹個短信驗證碼註冊多個賬號。
3、並發
並發處理會經常碰到,例如商城秒殺功能,如果不做好並發處理,那麽同壹件商品江湖被多個用戶購買。
並發的處理方案可以考慮以下方案:
(1)鎖表操作,缺點是並發數比較大的時候回造成系統卡頓。
(2)隊列
(3)負載均衡
(4)數據庫讀寫分離
(5)使用Nginx作為http服務器
4、緩存
對於經常需要訪問的數據庫數據,可以使用緩存來提高訪問速度,讀取緩存文件數據幣數據庫查詢要快得多,主要緩存技術有:
(1)Thinkphp自帶的S()方法
(2)文件讀寫,這個方法主意數據的加密確保安全性
(3)Memcached
推薦教程:PHP視頻教程