PHP开发规范说明.docx

上传人:b****6 文档编号:4728748 上传时间:2022-12-08 格式:DOCX 页数:11 大小:36.29KB
下载 相关 举报
PHP开发规范说明.docx_第1页
第1页 / 共11页
PHP开发规范说明.docx_第2页
第2页 / 共11页
PHP开发规范说明.docx_第3页
第3页 / 共11页
PHP开发规范说明.docx_第4页
第4页 / 共11页
PHP开发规范说明.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

PHP开发规范说明.docx

《PHP开发规范说明.docx》由会员分享,可在线阅读,更多相关《PHP开发规范说明.docx(11页珍藏版)》请在冰豆网上搜索。

PHP开发规范说明.docx

PHP开发规范说明

1目的

2代码规范要求

3程序设计原则

3.1Model层

所有与数据库表本身操作方法,都封装在自己的Model类中,不单独在外提供封装。

每个Model基于ThinkPHP都已经封装好了一套DB操作方法。

3.1.1基类

3.1.1.1Model

ThinkPHP原生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.2Update

if(IS_POST){

$_POST['id']=get_current_admin_id();

$_POST["oem_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){

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()))->delete();

$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.5Page

ThinkPHP已经实现好了分页栏位计算方法。

HTML中

{$page_bar}

PHP中

$count=$this->users_model->where($condition_user)->count();

$page=$this->page($count,20);

$users=$this->users_model

->where($condition_user)//加了过滤

->order("create_timeDESC")

->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.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('create_time','time',1,'function'),

array('update_time','time',2,'function'),

);

3.1.3通用方法

目前Model中可以通用的方法都写在CommonModel中。

个人尽量不要在些文件中定义自己的函数,如果确认有的方法很常用、很通用,提交项目组进行讨论并确认后,方可写入CommonModel文件中。

ThinkPHP提供了的原生数据库表操作功能,非常基础的Table操作可以直接写在上层代码中,如Controller中可以直接进行调用。

原生的快速数据库操作方法:

3.1.3.1Selecttop10*fromTablewherecondition

$list=$this->where($condition)->limit(10)->select();

3.1.3.2Selectaasaa,b,cfromtablewherecondition

$list=$this

->where($arrayCondition)

->field(array(“a”=>”aa”,“b”,“c”))

->select();

return$list;

3.1.3.3Inserttable(a,b,c)values(a,b,c)

普通做法:

$data['create_time']=date("Y-m-dH:

i:

s",time());

$data['code']=uniqid();

$result=$this->add($data);

使用ThinkPHP直接从POST中将Form数据存库方法:

if(IS_POST){

$_POST["oem_code"]=100;

if($this->menu_model->create()){

if($this->menu_model->save()!

==false){

3.1.3.4Updatetableseta=@awhereid=@id

$data['id']=100;

$data['update_time']=date("Y-m-dH:

i:

s",time());

$result=$this->save($data);

3.1.3.5Deletetablewhereid=@id

$result=$this->where("id=$id")->delete();

目前可以使用的自定义方法如下:

3.1.4自定义方法

所有与自身表数据有关的操作,各自封装在自己的Model文件中。

命名规则:

<操作><实体><条件>(….)

✓getRegisterUser(….);

✓setUserAgeById($id,$age);

✓getUsersByCondiation($condition);

✓deleteUserByCompanyAndStatus($company,$status);

3.2BusinessLogic层

没想好放在哪个目录下

3.2.1命名规则

3.2.1.1类名

按业务场景起名

如:

✓AlarmLogic

✓PurchaseLogic

✓CrmLogic

✓NotificateLogic

3.2.1.2方法命名规则

动词+名词

如:

✓moveAlarmToOtherUser($alarmid,$userid);

✓copyNotificationToCompany($notificateid,$companyid);

✓deleteExpireUserByCompanyPolicy($companyid);

3.3CommonFunction层

路径:

Application/Common/Common/Function.php下。

全局功能性的函数,或者全局通用的方法都写在这里。

目前定义的函数如下

3.3.1iot_oem_code()

取当前用户所属的oem_code。

3.4Session的使用

3.4.1$_SESSION[“user”]

4表单处理

4.1列表页面

4.1.1文件名定义

✓index

✓list

✓home

✓search

4.2添加页面

4.2.1文件名定义

✓add

✓create

4.2.2后台Action名

✓add_post

✓create_post

U('User/add_post')}">

functionadd_post()

{

if(IS_POST){

$_POST["oem_code"]=parent:

:

oem_code();

if(!

empty($_POST['role_id'])&&is_array($_POST['role_id'])){

$role_ids=$_POST['role_id'];

unset($_POST['role_id']);

if($this->users_model->create()){//从表单中直接实例化变量

//创建一个新用户

$result=$this->users_model->add();//保存数据库

if($result!

==false){

//为这个新用户创建角色

$role_user_model=M("RoleUser");

foreach($role_idsas$role_id){

$role_user_model->add(array("role_id"=>$role_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文件名定义

✓edit

4.3.2后台Action名

✓edit_post

4.4内容页面

4.4.1文件名定义

✓Detail

✓Info

4.5删除

4.5.1后台Action名

✓delete

4.6表单数据读取

4.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转换成Model

5.1.1.1D(“Common/ModelName”)

5.1.1.2M(“ModelName”)

5.2JSON

5.2.1String->JSON

5.2.1.1json_decode

将string按json解析成array对象:

$cmf_settings=“”,true)

5.2.2object->string(JSON)

以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.4MVC

5.4.1$this->display(":

search")

5.4.2$this->assign("keyword",$k)

6程序设计文档

6.1CompanyEquipment

6.1.1Model

6.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'泰安华鲁锻压机床有限公司'(length=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中用法:

150px;"id="company"name="company"class="normal_select">

请选择公司

{$company_kv_store[$key]}

{$company_kv_store[$key]}

7部署的程序说明

7.1鞍山项目

服务器:

123.57.157.144

软件:

WebAccess、MySQL、DotNet

7.1.1程序启动

7.1.1.1MySQL数据库

7.1.1.2WebAccess

7.1.1.3Grape.Ant服务

C:

\CTC\Services\Grape\Grape.Ant

Get:

<取到的数据数量>

Delete:

<删除的数据量>

ServerResponse:

 

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:

\CTC\Backgroupd_Services\main下运行_start.bat。

 

展开阅读全文
相关搜索

当前位置:首页 > 高中教育 > 其它课程

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

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