Monxin梦行应用开发规范
1一、命名规则
文件,类名,函数方法,变量,全用英文单词加下划线连接形式合名,
如 get_name add_cart name_values day_sum
如 get_name add_cart name_values day_sum
2二、注释规则
1、文件头部加此页 功能说明,并加作者姓名(拼音首字母)如://developer=lcq
2、代码块 函数 if else switch case 都要加注释
3、函数注释要加调用示例,如//get_name(996,19099887788);使用示例
2、代码块 函数 if else switch case 都要加注释
3、函数注释要加调用示例,如//get_name(996,19099887788);使用示例
3三、代码规则
1、复用频率高的,代码函数,可申请写入 公用文件中 如 ./config/function.php ./public/sys_head.js ./templates/0/index/default/pc/main.css
2、后端开发者,在文件头部,要先用 $get=safe_str($_GET) $post=safe_str($_POST)过虑外部内容,尽量不要直接用 $_GET $_POST,
后续操作都走 $get $post, $_COOKIE 操作时,进sql时,也要走safe_str($_COOKIE['****'])
值为,整数或浮点数时,要在文件头部用 intval() floatval() 强制转换,如$get['id']=intval($get['id']);
从数据库读出数据,输出给浏览器时,要走 de_safe_str($v)
单个文件 $_GET $_POST 只能出现一次
通用需求,可先去 ./config/function.php ./public/sys_head.js 查找,是否有现成函数调用,或联系上级咨询
3、需要登录才能看到的模块,输出数据为 json,保存在 $module['json'] 数组下,供前端模板调用 前端格式化json 输出HTML
4、无需登录就可看的模块,建议同时自己组装HTML 保存在 $module[***]数组下,供模板调用
5、修改他人代码时,要在修改处,加作者,原因,日期备注
6、sql调用外部数据时,一定要确保数据过 safe_str(),整数或浮点数时,确保用 intval() floatval() 转换过
6、sql -select- 时,一定要标名,字段时,及 调用数量,保持速度不慢 如 -select- `id`,`name` from monxin_index_user limit 0,1
7、sql -update-时,加要 limit 如 -update- monxin_index_user set `nickname`='SHE' where `id`=1 limit 1
8、单页面,调用 同一表次数过多时,建议先把表数据存入数组,再调用数组中的数据
2、后端开发者,在文件头部,要先用 $get=safe_str($_GET) $post=safe_str($_POST)过虑外部内容,尽量不要直接用 $_GET $_POST,
后续操作都走 $get $post, $_COOKIE 操作时,进sql时,也要走safe_str($_COOKIE['****'])
值为,整数或浮点数时,要在文件头部用 intval() floatval() 强制转换,如$get['id']=intval($get['id']);
从数据库读出数据,输出给浏览器时,要走 de_safe_str($v)
单个文件 $_GET $_POST 只能出现一次
通用需求,可先去 ./config/function.php ./public/sys_head.js 查找,是否有现成函数调用,或联系上级咨询
3、需要登录才能看到的模块,输出数据为 json,保存在 $module['json'] 数组下,供前端模板调用 前端格式化json 输出HTML
4、无需登录就可看的模块,建议同时自己组装HTML 保存在 $module[***]数组下,供模板调用
5、修改他人代码时,要在修改处,加作者,原因,日期备注
6、sql调用外部数据时,一定要确保数据过 safe_str(),整数或浮点数时,确保用 intval() floatval() 转换过
6、sql -select- 时,一定要标名,字段时,及 调用数量,保持速度不慢 如 -select- `id`,`name` from monxin_index_user limit 0,1
7、sql -update-时,加要 limit 如 -update- monxin_index_user set `nickname`='SHE' where `id`=1 limit 1
8、单页面,调用 同一表次数过多时,建议先把表数据存入数组,再调用数组中的数据
4四、数据表前缀说明
操作表时,不要直接写表全名,要通过前缀写,
如: -select- `id`,`name` from ".$pdo->index_pre."user where `id`=5 limit 0,1
$pdo->index_pre //主系统表前缀,如实值=monxin_index_
$pod->sys_pre //本站表统一前缀,如实值=monxin_
self::$table_pre //当前应用表前缀,如实值=monxin_mall_
解释例子
monxin_mall_shop
系统前缀_应用前缀_表名
如: -select- `id`,`name` from ".$pdo->index_pre."user where `id`=5 limit 0,1
$pdo->index_pre //主系统表前缀,如实值=monxin_index_
$pod->sys_pre //本站表统一前缀,如实值=monxin_
self::$table_pre //当前应用表前缀,如实值=monxin_mall_
解释例子
monxin_mall_shop
系统前缀_应用前缀_表名
5五、文件操作,路径安全过虑
safe_unlink($path)//安全删除文件
safe_path($path)//返回过虑后的文件夹路径
safe_rename($old_path,$new_path) //安全重命名文件
my_safe_save_file_name($path,$allow)//返回过安全虑后的文件名 使用列:my_safe_save_file_name('a.php','jpg,png,gif'); 返回 a.php_forbidden
文件操作不要跳出网站目录,网站目录变量 $_SERVER ['DOCUMENT_ROOT']
safe_path($path)//返回过虑后的文件夹路径
safe_rename($old_path,$new_path) //安全重命名文件
my_safe_save_file_name($path,$allow)//返回过安全虑后的文件名 使用列:my_safe_save_file_name('a.php','jpg,png,gif'); 返回 a.php_forbidden
文件操作不要跳出网站目录,网站目录变量 $_SERVER ['DOCUMENT_ROOT']
6六、PHP函数相关
函数要写在调用前
不要使用以下PHP内置函数
phpinfo,eval,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen,putenv
不要使用以下PHP内置函数
phpinfo,eval,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen,putenv
7七、系统已整合常用类
bootstrap layui jQuery WEUI 前端框架 及font-awesome字体,其它常用的第三方类 ./lib/ ./plugin/ ./public/
8八、语言文件
所有页面,默认已加载 ./language/chinese_simplified.php,及应用自身语言:./program/应用目录名/language/chinese_simplified.php
可 var_dump(self::$language) 查看,是否有现成的语言
可 var_dump(self::$language) 查看,是否有现成的语言
9九、子应用目录文件说明
目录attachd 可视编辑器上传的附件存放目录
目录img 默认图片存放目录
目录img_thumb 默认缩略图存放目录
目录install_sql 应用安装时的数据文件
目录language 应用语言文件
目录receive 数据接收处理目录
目录show 输出显示界面数据
admin_map.php 本应用后台导航条数据文件
example.class.php 本应用 数据显示入口类
config.php 应用配置文件
icon.png 应用图标
install.php 应用安装时执行的文件
menu.php 应用后台菜单(主用于,权限配置时)
module_config.php 应用的模块配置文件
pages.php 应用的页面配置
receive.class.php 本应用 数据接收入口类
uninstall.php 应用卸载时执行的文件
payment_function.php 另费功能配置文件
目录img 默认图片存放目录
目录img_thumb 默认缩略图存放目录
目录install_sql 应用安装时的数据文件
目录language 应用语言文件
目录receive 数据接收处理目录
目录show 输出显示界面数据
admin_map.php 本应用后台导航条数据文件
example.class.php 本应用 数据显示入口类
config.php 应用配置文件
icon.png 应用图标
install.php 应用安装时执行的文件
menu.php 应用后台菜单(主用于,权限配置时)
module_config.php 应用的模块配置文件
pages.php 应用的页面配置
receive.class.php 本应用 数据接收入口类
uninstall.php 应用卸载时执行的文件
payment_function.php 另费功能配置文件
10十、梦行文件操作接口(支持服务器集群)
注意,网站服务器要与文件服务器时间同步
$file=array(); $file['act']='list|save|del|info|get|copy'; $file['path']=''; $file['content']=''; $r=yun_file($config,$file);
或者
yun_file(self::$config,array('act'=>'del','path'=>$path,)) yun_file(self::$config,array('act'=>'get','path'=>$path,)) yun_file(self::$config,array('act'=>'save','path'=>$path,'content'=>$c)) yun_file(self::$config,array('act'=>'list','path'=>$path)) yun_file(self::$config,array('act'=>'info','path'=>$path)) yun_file(self::$config,array('act'=>'copy','source'=>$source,'new'=>$new))
act解释 list=scandir,save=file_put_contents,del=unlink
本页由《梦行文档》生成