ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:36.29KB ,
资源ID:4728748      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4728748.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PHP开发规范说明.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PHP开发规范说明.docx

1、PHP开发规范说明1目的2代码规范要求3程序设计原则3.1Model层所有与数据库表本身操作方法,都封装在自己的Model类中,不单独在外提供封装。每个Model基于ThinkPHP都已经封装好了一套DB操作方法。3.1.1基类3.1.1.1ModelThinkPHP原生Model基类。不能修改。在基于单表的数据CURD操作,使用Model原生成的功能。如:3.1.1.1.1Insert$role_user_model-add(array(role_id = $role_id, user_id = $uid, oem_code = parent:oem_code();3.1.1.1.2Upda

2、teif (IS_POST) $_POSTid = get_current_admin_id(); $_POSToem_code = parent:oem_code(); $create_result = $this-users_model-field(user_login,user_email,last_login_ip,last_login_time,create_time,user_activation_key,user_status,role_id,score,user_type,oem_code, true)/排除相关字段 -create(); if ($create_result)

3、 if ($this-users_model-save() != false) $this-success(保存成功!); else $this-error(保存失败!); else $this-error($this-users_model-getError(); 3.1.1.1.3Delete$id = intval(I(get.id);if ($this-users_model-where(id=$id)-delete() != false) M(RoleUser)-where(array(user_id = $id, oem_code = parent:oem_code()-delet

4、e(); $this-success(删除成功!); else $this-error(删除失败!);3.1.1.1.4Where$id = get_current_admin_id();$user = $this-users_model-where(array(id = $id, oem_code = parent:oem_code()-find();3.1.1.1.5PageThinkPHP已经实现好了分页栏位计算方法。HTML中$page_barPHP中$count = $this-users_model-where($condition_user)-count();$page = $t

5、his-page($count, 20);$users = $this-users_model -where($condition_user)/ 加了过滤 -order(create_time DESC) -limit($page-firstRow . , . $page-listRows) -select();$this-assign(page_bar, $page-show(Admin); / Admin 是模板名称,默认可以不填$this-assign(users, $users);3.1.1.2CommonModel: Model通用Model。构造时会所用默认的数据库连接。3.1.1

6、.3OemModel: CommonModel: Model针对不同OEM需要访问自己的DB时所使用的Model。重写了构造函数,初始化时会使用OEM定义好的数据库连接信息。3.1.2通用设置3.1.2.1自动后台验证/自动验证protected $_validate = array( /array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间) array(name, require, 用户名称不能为空!, 1, regex, ComentsModel: MODEL_INSERT ),);3.1.2.2默认值设定protected $_auto = array( array(c

7、reate_time,time,1,function), array(update_time,time,2,function),);3.1.3通用方法目前Model中可以通用的方法都写在CommonModel中。个人尽量不要在些文件中定义自己的函数,如果确认有的方法很常用、很通用,提交项目组进行讨论并确认后,方可写入CommonModel文件中。ThinkPHP提供了的原生数据库表操作功能,非常基础的Table操作可以直接写在上层代码中,如Controller中可以直接进行调用。原生的快速数据库操作方法:3.1.3.1Select top 10 * from Table where condi

8、tion$list = $this-where($condition)-limit(10)-select();3.1.3.2Select a as aa, b, c from table where condition$list = $this -where($arrayCondition) -field(array(“a”=”aa”, “b”, “c”) -select();return $list;3.1.3.3Insert table (a, b, c) values (a, b, c)普通做法:$datacreate_time = date(Y-m-d H:i:s, time();$d

9、atacode = uniqid();$result = $this-add($data);使用ThinkPHP直接从POST中将Form数据存库方法:if (IS_POST) $_POSToem_code = 100; if ($this-menu_model-create() if ($this-menu_model-save() != false) 3.1.3.4Update table set a = a where id = id$dataid = 100;$dataupdate_time = date(Y-m-d H:i:s, time();$result = $this-save

10、($data);3.1.3.5Delete table where id = id$result = $this-where(id=$id)-delete();目前可以使用的自定义方法如下:3.1.4自定义方法所有与自身表数据有关的操作,各自封装在自己的Model文件中。命名规则:(.)getRegisterUser(.);setUserAgeById($id, $age);getUsersByCondiation($condition);deleteUserByCompanyAndStatus($company, $status);3.2Business Logic层没想好放在哪个目录下3.

11、2.1命名规则3.2.1.1类名按业务场景起名如:AlarmLogicPurchaseLogicCrmLogicNotificateLogic3.2.1.2方法命名规则动词+名词如:moveAlarmToOtherUser($alarmid, $userid);copyNotificationToCompany($notificateid, $companyid);deleteExpireUserByCompanyPolicy($companyid);3.3Common Function层路径:Application/Common/Common/Function.php下。全局功能性的函数,或

12、者全局通用的方法都写在这里。目前定义的函数如下3.3.1iot_oem_code()取当前用户所属的oem_code。3.4Session的使用3.4.1$_SESSION“user”4表单处理4.1列表页面4.1.1文件名定义indexlisthomesearch4.2添加页面4.2.1文件名定义addcreate4.2.2后台Action名add_postcreate_postfunction add_post() if (IS_POST) $_POSToem_code = parent:oem_code(); if (!empty($_POSTrole_id) & is_array($_

13、POSTrole_id) $role_ids = $_POSTrole_id; unset($_POSTrole_id); if ($this-users_model-create() / 从表单中直接实例化变量 / 创建一个新用户 $result = $this-users_model-add(); / 保存数据库 if ($result != false) / 为这个新用户创建角色 $role_user_model = M(RoleUser); foreach ($role_ids as $role_id) $role_user_model-add(array(role_id = $rol

14、e_id, user_id = $result, oem_code = parent:oem_code(); $this-success(添加成功!, U(user/index); else $this-error(添加失败!); else $this-error($this-users_model-getError(); else $this-error(请为此用户指定角色!); 4.3编辑页面4.3.1文件名定义edit4.3.2后台Action名edit_post4.4内容页面4.4.1文件名定义DetailInfo4.5删除4.5.1后台Action名delete4.6表单数据读取4.

15、6.1I(“get.”)4.6.2I(“post.”)4.6.3$_GET“”4.6.4$_POST“”4.6.5$_GET + $_POST$GETPOST = array_meager($_GET, $_POST);5常用功能5.1数据库操作5.1.1转换成Model5.1.1.1D(“Common/ModelName”)5.1.1.2M(“ModelName”)5.2JSON5.2.1String-JSON5.2.1.1json_decode将string按json解析成array对象:$cmf_settings = “”, true)5.2.2object- string(JSON)以

16、Json格式(0)对$object进行序列化,序列化100个层级关系:$json_string = $object, 0, 100);简化写法:$json_string = $object);5.2.3读写配置文件ThinkPHP默认的配置文件在App/Common/Conf/Config.php文件中进行定义。5.2.3.1读$config = C(“配置项目名称”);5.2.3.2写C(“配置项”) = $config;5.3数组操作5.3.1array_merge($arrayA, $arrayB)5.4MVC5.4.1$this - display(:search)5.4.2$this

17、 - assign(keyword, $k)6程序设计文档6.1CompanyEquipment6.1.1Model6.1.1.1getCompanyKeyValue ($condition=null)返回可以使用的Company,字段是key, value,代表code,name。主要用于html中的dropdown控件使用返回值:array (size=4) SuJWlBoFkr = string 上海维沃重工机械有限公司 (length=36) K5QIohn6L7 = string 没有测试 (length=12) OEM_000001 = string 泰安华鲁锻压机床有限公司 (l

18、ength=36) TREYUTYTRE = string 鞍山宝马钢材物流中心销售有限公司 (length=48)PHP中用法:$company_kv_store = $this-company_model-getCompanyKeyValue (array(oem_code = iot_oem_code();$this-assign(company_kv_store, $company_kv_store);HTML中用法: 请选择公司 $company_kv_store$key $company_kv_store$key 7部署的程序说明7.1鞍山项目服务器:123.57.157.144软

19、件:WebAccess、MySQL、DotNet7.1.1程序启动7.1.1.1MySQL数据库7.1.1.2WebAccess7.1.1.3Grape.Ant服务C:CTCServicesGrapeGrape.AntGet:Delete:Server Response: 7.2云中控平台7.2.1配置新OEM在Aliyun的RDS中创建OEM数据库iot_oem_dev。在云中控平台中,使用Platform_admin帐号,创建OEM,配置Config中相关数据库连接信息。Platform_code表中增加对应OEM的计算器。在云中控平台中,创建一个该OEM下的管理员。在RabbitMQ中配置对应OEM的消息队列。在RabbitMQ中,配置对应的Exchange参数。配置223服务器上中服务,每个OEM有4个批处理文件,修改这四个批处理文件的参数为OEM的Codee。修改_start.bat文件,加上新增的OEM批处理文件,并启动此批处理文件。7.2.2程序启动统一启动,请在 D:CTCBackgroupd_Servicesmain 下运行 _start.bat。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1