编码规范

KaliPHP 框架主张开发时以敏捷为原则

KaliPHP 框架主张开发时以敏捷为原则,但基本的规范必须遵守,程序要注重可读性,不要有太多“个性化”的代码! 为了方便更快入门,这里提取重点说明如下: 1、 缩进用4个空格代替制表符,以便于不同环境下有更好的兼容性。 2.、大括号不管内容多少,都建议换行,这样可以保持代码的阅读简易性。

if() { ... }

function test() { ... }

3、变量、成员函数、类名、表名、字段名等命名用下划线分隔法,并且全用小写字母。

$acc_users、open_account()

4、变量、成员函数如果是 private、protected 的,以下划线开头。

private $_acc_users;
private function _open_account()

5、文件命名规范。

cls_ 框架基础类文件     (存放在 lib)

mod_ 数据模型类        (存放在 appdir/model)

pub_mod_ 公共数据模型类 (存放在 ../appdir/model)

ctl_ 应用目录控制器类   (存放在 appdir/control)

6、模板文件命名方式为:(ctl name).(action name).tpl 其中 ac=index 的 index 可以省缺,如:

template/index.tpl
template/index.index.tpl
template/archives.add.tpl

7、开发时使用严格模式,重点需要注意下面几点: (1)、严禁变量没有赋值就直接使用; (2)、字符串中使用变量应该用{}括起来。 (3)、对于没有内部使用变量的字符串尽量用 '' 表示,表示数组元素的字符串,必须用 '' 括起来。 (4)、数据模型类尽量偏向使用静态方法的原则,使程序简单易读(对于逻辑极明显的类可例外,一般是库或第三方的库才允许使用动态对象)。

8、关于源码编码问题需特别注意的是: 没特殊情况,项目都是推荐用utf-8编码的,由于php无法处理带bom的源码,所以务必把源码保存为utf-8无bom的格式,以免输出多余的头导致出错!

9、关于文件格式问题需特别注意的是: 由于历史原因,导致Windows,Unix/Linux,Mac三者之间,对于文件中所用回车换行符,表示的方法,都不一样。这就导致了很多人都会遇到回车换行符的困惑,比如在Unix/Linux和Mac下面使用vim编辑Windows格式的文档,会出现很多 ^M 字符,给阅读带来不便,所以在Windows下面开发的同学,务必把档案格式改为Unix/Linux,以便统一风格。

10、关于在控制器使用私有方法原则: 控制器类是不放私有逻辑的,但有时为了简便起见,也允许放不公用的简单逻辑代码,这种代码函数名用 _ 开头。 建议模型类里的私有方法也用这种方式书写,这样用不同编辑器读代码时都能更简便的识别整个类的情况 。

11、关于PHP表达式之间的空格: 对于初级程序员,往往对代码的空格之类有恐惧症,担心一些多余的空格会影响代码执行或性能,在表达式、变量列表之间没有空格,这样的代码,实际上是很不美观的,修改时受到光标位置的影响,也更容易改错,一般性的建议是:运算符和变量之间,应该留有空格;函数参数列表之间,应该含有空格;括号的两端如果含有表达式或多个变量的,也应该含有空格。 如:

$data=array(
    'name'=>'test',
    'pass'=>'test'
);

cache::set("info","userinfo",$data,86400);

if(!is_array($data))$data=array($data);

foreach($data as $key=>$val)

像上述代码,即使已经进行语法加亮,都会有密麻的感觉,建议按如下方式加空格:

$data = array(
    'name' => 'test',
    'pass' => 'test'
);

cache::set("info", "userinfo", $data, 86400);

if( !is_array($data) ) $data = array($data);

foreach( $data as $key => $val )

如:

>$name = "seatle"; // 姓名
$sex = 1; // 性别
$age = 25; // 年龄

像上述代码,一旦定义变量多起来,就会犹如杂草丛生,建议按如下方式对齐:

$name = "seatle"; // 姓名
$sex  = 1;        // 性别
$age  = 25;       // 年龄

12、代码安全务必注意事项: (1)、凡是where查询语句里的变量,务必加引号,即使是int类型的;符合某种类型的,就必须按某种类型预先过虑; (2)、insert、update类语句,如果不是使用curd类,必须要进行操作前对所有数据安全性进行检测; (3)、凡是可能直接向页面输出的内容,必须考虑屏蔽script、iframe、meta等,以免产生xss跨站漏洞; (4)、涉及文件上传的,必须多次详细进行检查,确定漏洞存在可能性。

Last updated