PHP Web项目总结

严格上划分,前段时间做的PHP Web项目PHP Web项目是自己开发的第一个线上服务。第一次和前端同事合作开发,第一次一个人担任服务端开发,本文是对这次开发的一次总结。

代码规范

这个是在看到一段遗留代码才察觉的,其中有一段代码如下:

// ……
$a=isset($_GET["a"])?$_GET["a"]:0;
if($a==0){
    // logic
}else{

}

看完这个脚本后,我感觉全身都被压挤着,比自己曾经坐过的十一火车还挤(哈哈)。于是网上搜了下PHP-FIG的代码规范,发现了PHP中PSR-[0-4]代码规范。

C++开发切换到PHP语言后,在代码规范上容易受到C++编码规范潜移默化的影响。比如说,自己写的C++函数结构更加倾向于:

void bar {
    // logic code
}

然而从php psr2编码规范并不推荐这种编码方式,推荐使用:

<?php
namespace Vendor\Package;

class ClassName
{
    public function fooBarBaz($arg1, &$arg2, $arg3 = [])
    {
        // method body
    }
}

不推荐使用:

<?php
namespace Vendor\Package;

class ClassName {
    public function fooBarBaz($arg1, &$arg2, $arg3 = []) {
        // method body
    }
}

其他点,比如一个PHP文件的分段:命名空间,导入类,类等,自己觉得和C++很类似。

结构设计

自己使用的是公司的一个PHP框架,窃以为目录比较混乱,例如代码的index.php和Controller层代码在两个不同的目录。

因开发的接口提供给前段同事调用,MVC只有MC。Controller层负责第一层的处理,包括参数校验,完成处理后调用Model层类处理具体的逻辑。

对用到的其他服务,自己把它们单独划分到最底层的第三方接口,只负责请求及获取结果。在第三方接口层之上,对获取结果做逻辑处理,例如:解析返回结果、合并解析后的返回结果。

遇到的问题

代码发布问题

这个是任何服务端上线需要解决的问题,这个有相当多的解决方案,例如:rsync。一个好的发布系统,我认为至少要支持以下特性:
- 支持测试、回归以及灰度发布
- 回滚操作(代码有问题,立即回滚到上一个稳定版本)。

公司的发布系统在第一点上做的不是很好,例如:不支持发布到测试环境。自己在这个发布系统上遇到比较多的坑,花费了很多时间沟通解决问题。

功能测试

自己开始拿php-unit做功能测试,后期才发现方向走错了。目前使用的工具包括:
- PostMan
- Python Request接口测试
- Chrome前端测试


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值