94hwan-PHP框架基本原理

Source:94hwan 与众不同  Author:网络部
2011-03-28 20:57

開發時以敏捷爲原則,但基本的規範必須遵守,程序要注重可讀性,不要有太多“個性化”的代碼!
爲了方便更快入門,這裏提取重點說明如下:

1、縮進用4個空格代替制表符,以便于不同環境下有更好的兼容性。


2、大括號應該要統一換行,而不要用java第一個'{'在同一行的那種風格。
(可允許少于三行的代碼塊使用這種風格)  
如:
if() {
        ...
}
function test()
{
       ...
}

3、變量、成員函數、類名、表名、字段名等命名用下劃線分隔法,並且全用小寫字母。

     如:open_account()、$acc_users

4、文件命名規範:

     lib_ 函数库              (存放在 /library)
     cls_ 框架基础类文件      (存放在 /library)
     pub_ 项目公共接口类     (存放在 /library)
     mod_ 应用目录私有模型类 (存放在 appdir/model)
     ctl_ 应用目录控制器类   (存放在 appdir/control)

5、模板文件命名方式为:appdir/(ctl name).(action name).tpl

     其中 ct=index 的 index 可以省缺
     如:
     templates/template/index.tpl
     templates/template/admin/index.index.tpl
     templates/template/admin/archives.add.tpl

6、開發時使用嚴格模式,重點需要注意下面幾點:

     (1)、严禁变量没有赋值就直接使用;
     (2)、字符串中使用变量应该用{}括起来,如:$str = "你是:{$type}?";
     (3)、对于没有内部使用变量的字符串尽量用 '' 表示,表示数组元素的字符串,必须用 '' 括起来。
          如: $str = '我是普通字符串!';   $names['tom'] = '汤姆';
     (4)、模型类尽量偏向使用静态方法的原则,使程序简单易读(对于逻辑极明显的类可例外,一般是库或第三方的库才允许使用动态对象)。

7、關于源碼編碼問題需特別注意的是: 公司的項目都是用utf-8編碼的,由于php無法處理帶bom的源碼,
     所以务必把源码保存为utf-8无bom的格式,以免输出多余的头导致出错! 

8、關于在控制器使用私有方法 原則上,控制器類是不放私有邏輯的,但有時爲了簡便起見,也允許放不
     公用的简单逻辑代码,这种代码函数名用 _ 开头,如:function _test_username(){ ... },建议模型类里的
     私有方法也用这种方式书写,这样用不同编辑器读代码时都能更简便的识别整个类的情况 。

9、代碼安全務必注意事項:
    
(1)、凡是where查詢語句裏的變量,務必加引號,符合某種類型的,就必須按某種類型預先過慮;
    (2)、insert、update类语句,如果不是使用lurd类,必须要进行操作前对所有数据安全性进行检测;
    (3)、凡是可能直接向页面输出的内容,必须考虑屏蔽script、iframe、meta等,以免产生xss跨站漏洞;
    (4)、涉及文件上传的,必须多次详细进行检查,确定漏洞存在可能性。
 

...