PHP开发规范说明Word下载.docx
- 文档编号:17666827
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:11
- 大小:36.29KB
PHP开发规范说明Word下载.docx
《PHP开发规范说明Word下载.docx》由会员分享,可在线阅读,更多相关《PHP开发规范说明Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
if($this->
save()!
==false){
$this->
success("
保存成功!
"
);
}else{
error("
保存失败!
}
error($this->
getError());
}
3.1.1.1.3Delete
$id=intval(I("
get.id"
));
if($this->
where("
id=$id"
)->
delete()!
M("
RoleUser"
where(array("
$id,"
oem_code()))->
delete();
删除成功!
}else{
删除失败!
3.1.1.1.4Where
$id=get_current_admin_id();
$user=$this->
id"
find();
3.1.1.1.5Page
ThinkPHP已经实现好了分页栏位计算方法。
HTML中
<
divclass="
pagination"
>
{$page_bar}<
/div>
PHP中
$count=$this->
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是模板名称,默认可以不填
users"
$users);
3.1.1.2CommonModel:
Model
通用Model。
构造时会所用默认的数据库连接。
3.1.1.3OemModel:
CommonModel:
针对不同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(
create_time'
time'
1,'
function'
),
update_time'
2,'
3.1.3通用方法
目前Model中可以通用的方法都写在CommonModel中。
个人尽量不要在些文件中定义自己的函数,如果确认有的方法很常用、很通用,提交项目组进行讨论并确认后,方可写入CommonModel文件中。
ThinkPHP提供了的原生数据库表操作功能,非常基础的Table操作可以直接写在上层代码中,如Controller中可以直接进行调用。
原生的快速数据库操作方法:
3.1.3.1Selecttop10*fromTablewherecondition
$list=$this->
where($condition)->
limit(10)->
3.1.3.2Selectaasaa,b,cfromtablewherecondition
$list=$this
where($arrayCondition)
field(array(“a”=>
”aa”,“b”,“c”))
return$list;
3.1.3.3Inserttable(a,b,c)values(a,b,c)
普通做法:
$data['
]=date("
Y-m-dH:
i:
s"
time());
code'
]=uniqid();
$result=$this->
add($data);
使用ThinkPHP直接从POST中将Form数据存库方法:
]=100;
menu_model->
create()){
…
3.1.3.4Updatetableseta=@awhereid=@id
save($data);
3.1.3.5Deletetablewhereid=@id
目前可以使用的自定义方法如下:
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
formmethod="
post"
class="
form-horizontalJ_ajaxForm"
action="
{:
U('
User/add_post'
)}"
functionadd_post()
{
if(IS_POST){
if(!
empty($_POST['
role_id'
])&
&
is_array($_POST['
])){
$role_ids=$_POST['
];
unset($_POST['
]);
create()){//从表单中直接实例化变量
//创建一个新用户
$result=$this->
add();
//保存数据库
if($result!
//为这个新用户创建角色
$role_user_model=M("
foreach($role_idsas$role_id){
$role_user_model->
$result,"
添加成功!
U("
user/index"
添加失败!
请为此用户指定角色!
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.<
name>
”)
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=“<
json_string>
”,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'
没有测试'
(length=12)
OEM_000001'
泰安华鲁锻压机床有限公司'
TREYUTYTRE'
鞍山宝马钢材物流中心销售有限公司'
(length=48)
PHP中用法:
$company_kv_store=$this->
company_model->
getCompanyKeyValue(array("
iot_oem_code()));
company_kv_store"
$company_kv_store);
HTML中用法:
selectstyle="
width:
150px;
id="
company"
name="
normal_select"
<
optionselectedvalue="
请选择公司<
/option>
foreachname="
item="
key"
ifcondition="
$keyeq$post['
company'
]"
optionvalue="
{$key}"
selected>
{$company_kv_store[$key]}<
else/>
/if>
/foreach>
/select>
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:
WebAPi的返回值>
7.2云中控平台
7.2.1配置新OEM
在Aliyun的RDS中创建OEM数据库iot_oem_<
code>
_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。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 开发 规范 说明