Web应用开发代码规范以及应用框架核心要素二.docx
《Web应用开发代码规范以及应用框架核心要素二.docx》由会员分享,可在线阅读,更多相关《Web应用开发代码规范以及应用框架核心要素二.docx(14页珍藏版)》请在冰豆网上搜索。
Web应用开发代码规范以及应用框架核心要素二
代码规范:
总体原则:
使代码清晰易读。
整体代码风格要保持一致。
代码规范:
1.所有类,方法,文件名,链接地址等都要小写。
常量要大写。
没有强调要大写的,一律小写。
(注:
只有MetInfo应用框架重要的核心类,方法是大写的,应用中不要使用大写类,方法名称)
2.所有的SQL语句的关键词都要大写,如:
1
SELECT * FROMmet_applistWEHERno<1000ORDERBYnoDESC。
3.运算符,两边要打空格,如:
1
if ($a == $b || $c > $f) $c .= $m;
4.双引号里面有变量要用{}括起来。
如:
1
$a = "你好:
{$a},有什么事情";
5.使用echo<<进行块输出的时候,里面的变量也要用{}括起来。
1
6.数组的键值要用单引号引起来。
如:
1
$array['key1']['key2']
7.循环、判断语句等,含有{}这种结构的语句。
‘{’(开始标签)之前要留空格。
‘(’之前也要留空格。
‘}’(结束标签)要另起一行,并且与函数类名或语句的关键词对齐,里面的代码块要一个TAB的缩进。
01
if ($a > $b){ //运算符前后有空格,‘(’前有空格,‘{’前有空格
02
$a =1; //运算符前后有空格
03
$b =2; //一个tab的缩进
04
} else {//另起一行,注意else两边有空格
05
$b =3;
06
}
07
$i =0;
08
while ($i <10){ //运算符前后有空格,‘(’前有空格,‘{’前有空格
09
$i++;//一个tab的缩进
10
}
11
foreach ($array as $key => $val){//‘(’前有空格,‘{’前有空格,‘=>’前后后空格
12
$i++;//一个tab的缩进
13
}
14
switch ($i){ //‘(’前有空格,‘{’前有空格
15
case 10:
//一个tab的缩进
16
$i++;//一个tab的缩进
17
break;//一个tab的缩进
18
19
}
8.当if语句后面只有一行代码的时候可以不是用{}但是()后面要加空格。
如:
1
if ($a == $b || $c > $f) $c = $m; // if后面有空格
9.函数的参数有用“,”(逗号隔开后)要有空格,函数定义的时候“)”与“{”之间有空格。
里面的代码也要有一个tab的缩进。
1
function ceshi($a, $b){ //‘{’前有空格 $a,逗号后有空格
2
$a += $b;//一个tab的缩进
3
}
10.类定义“{”之前要有空格,属性,方法之间要有一个空行。
里面代码要有一个tab的缩进
01
class metinfo{ //‘{’前有空格
02
//一个空行
03
public $met;//一个tab的缩进
04
public $met2;
05
//一个空行
06
public function doindex(){//public不要省略,类的方法内部代码规范同函数//一个tab的缩进
07
08
}
09
//一个空行
10
public function doindex(){//public不要省略,类的方法内部代码规范同函数
11
12
}
13
}
11.代码中有明显功能区别的区块,可以适当加空行,但空行不宜太多。
注释规范:
方法的注释(包括类的方法):
01
/** // 另起一行
02
*函数作用
03
*@param int $afg 变量作用 // *后面空一格
04
*@param array $abbcvbcv变量作用 // 变量对齐
05
*@param array $a 变量作用 // 变量作用对齐
06
*@param int $afff 变量作用 // int对齐
07
*@returnint 返回值作用 // 返回值不用写变量名
08
*/
09
functinonceshi($a){
10
}
1.总的来说,*对齐,整体风格保持一致。
2./**要新起一行。
3.以/**开头,/与functinon的f对其。
4.以*/结尾,*与functinon的u对其。
5.*/要换行后,在写被注释代码。
6.中间已*开头,*与functinon的u对其。
*之后要空一格
7.内容第一行,说明函数作用。
8.第二行开始说明函数参数,@param开头,之后依次说明类型,名称,作用,之间用空格隔开空格。
可以适当加TAB,使类型,名称,作用3列对其。
之间距离不宜过宽。
9.内容最后如果函数有返回值,用@return开头,只用依次是类型,作用。
注意:
如果说明的变量取值为固定的几个值。
较少可以在一行说明。
较多可以新起一行说明,内容较多的情况下也可以。
如
1
/*
2
*函数作用
3
* @paramint$a(1=左上角,2=右上角)
4
*/
或
1
/*
2
*函数作用
3
*@paramint$a
4
*为1时,表示左上角
5
*为2时,表示右上角
6
*/
//用作单行注释的时候,直接加载要注释的行后,多行注释的时候,单独起一行。
如:
1
//多行注释
2
a=1+1;
3
b=2+1;//单行注释
类的注释:
1
/** //另起一行
2
*类作用 //*后面空一格
3
*类字段注释
4
*/
5
class a{
6
pbulicb;
7
}
1./**,*,*/的使用方法与函数一致,要与被注释的代码开头对其。
2.内容说明类的作用即可。
3.类字段注释写法和函数参数一致。
4.类方法注释写法和函数一致。
框架核心:
系统核心包括:
common,web,admin三个类。
其中common为一级基类,应用模块不直接继承这个类,而是继承web和admin。
web和admin为系统的二级基类,其父类是common。
应用模块通过load(加载类)加载web或admin类(前台模块加载web,后台模块加载admin)后,在继承基类。
在应用模块中可以执行基类的初始化方法和基类的一些其他方法。
下面来分别介绍基类的初始化流程与方法调用:
common(一级基类)
web(前台基类)
admin (后台基类)
load:
教程完善中,敬请期待!
Common:
common.class.php(一级基类)
构造函数:
1
global $_M;//全局数组$_M
2
ob_start();//开启缓存
3
$this->load_mysql();//数据库连接
4
$this->load_form();//表单过滤
5
$this->load_lang();//加载语言配置
6
$this->load_config_global();//加载全站配置数据
7
$this->load_config_lang();//加载当前语言配置数据
8
$this->load_url();//加载url数据
析构函数:
1
global$_M;
2
//读取缓冲区数据
3
$output=str_replace(array('
--
---->','
---->','
--fck-->','
--fck','fck-->','',"\r",substr($admin_url,0,-1)),'',ob_get_contents());
4
ob_end_clean();//清空缓冲区
5
echo$output;//输出内容
6
DB:
:
close();//关闭数据库连接
7
exit;
一级基类只供前台基类和后台基类继承,应用的所有模块不直接继承,方法如下表:
方法
访问修饰符
描述
load_mysql()
protected
链接数据库。
load_form()
protected
获取GET,POST,COOKIE,存放在$_M['form'],系统表单提交变量数组。
load_lang()
protected
获取网站的语言设置,存放在$_M['langlist'],语言设置数组。
load_config_global()
protected
获取网站的全局网站设置,存放在$_M['config'],网站设置数组。
load_config_lang()
protected
获取网站的当前语言的网站设置,存放在$_M['config'],网站设置数组。
load_config()
protected
获取网站的网站设置,存放在$_M['config'],网站设置数组。
load_url()
protected
获取$_M['url'],系统URL网址数组。
load_url_site()
protected
获取前台网址与后台网址。
load_url_other()
protected
获取其他网址,web与admin公用。
load_url_unique()
protected
用于web与admin类加载不同的网址。
load_flashset_data()
protected
获取网站的flash设置,存放在$_M['flashset'],flash设置数组。
load_word()
protected
获取语言参数,存放在$_M['word'],网站设置数组。
template()
protected
包含模板文件。
web.class.php(前台基类)
构造函数:
1
public function __construct(){
2
parent:
:
__construct();
3
global $_M;
4
define('PATH_TEM',PATH_WEB."templates/".$_M['config']['met_skin_user'].'/');//模板根目录
5
$this->load_language();//语言加载
6
met_cooike_start();//读取已登陆会员信息
7
$this->load_publuc_data();//加载公共数据
8
load:
:
plugin('doweb');//加载插件
9
}
前台基类被前台模块继承,调用方法如下表:
方法
访问修饰符
描述
load_form()
protected
重写common类的load_form方法,前台对提交的GET,POST,COOKIE进行安全的过滤处理。
load_url_unique()
protected
重写common类的load_url_unique方法,获取前台特有URL。
load_language()
protected
获取当前语言参数。
load_publuc_data()
protected
获取前台公用数据。
load_template_lang()
protected
获取前台模板的语言参数配置,存放在$_M['word']中,系统语言参数数组。
。
check()
protected
前台权限检测。
custom_template()
protected
应用兼容模式加载前台模板,会自动加载当前选定模板的顶部,尾部,左侧导航(可设置),只有内容主题可以自定义。
admin.class.php(后台基类)
构造函数:
1
public function __construct(){
2
parent:
:
__construct();
3
met_cooike_start();//读取已登陆管理员信息
4
$this->load_language();//语言加载
5
$this->check();//验证管理员
6
load:
:
plugin('doadmin');//插件加载
7
}
后台基类被后台模块继承,调用方法如下表:
方法
访问修饰符
描述
load_url_site()
protected
重写common类的load_url_site方法,获取前台与后台网址。
load_url_unique()
protected
重写common类的load_url_unique方法,获取后台台特有URL。
load_language()
protected
获取当前语言参数。
check()
protected
检测是否登陆。