Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >​CODING DevOps 代码质量实战系列第二课: PHP 版

​CODING DevOps 代码质量实战系列第二课: PHP 版

原创
作者头像
腾讯云 CODING
发布于 2020-09-03 09:28:03
发布于 2020-09-03 09:28:03
5140
举报
文章被收录于专栏:CODING DevOpsCODING DevOps
1
1

讲师介绍

杨周

CODING DevOps 架构师

CODING 布道师

连续创业者、DIY/Linux 玩家、知乎小 V,曾在创新工场、百度担任后端开发。十余年一线研发和带队经验,经历了 ToB、ToC、O2O、国内、出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review、DevOpsGit Workflow、敏捷开发、架构、极客办公硬件。


PHP 老项目常见质量问题

问题一:未提交 composer.lock

Composer 官方文档(getcomposer.org)提醒:一定要提交 composer.lock 文件到代码库,才能确保所有人、所有机器安装的依赖包都是同一版本。

2
2

问题二:提交了 vendor

把第三方包的代码提交到了自己的代码库里,导致代码库过大,拉取速度慢,并且无法跟进第三方包的升级。所以,应该使用.gitignore 忽略vendor 目录。

解决方案:删除 vendor,执行 composer install,再把 composer.lock 提交到代码库。

3
3

结果报错:

1.使用了废弃的包;

2.使用了已废弃的语法;

3.框架命令执行失败。

查看 PHP 官方文档可以发现:PHP 7.4 不赞成使用花括号语法来访问数组元素和字符串偏移量。

4
4

修改之后即可解决,从这个技术细节可以看出此开源项目无法跟上 PHP 官方的版本升级,在我们做技术选型时要避免使用这种落后的项目、框架,而应使用全球知名框架,能够紧跟语言官方版本升级,目前 PHP 7.1 已经废弃,7.2 即将结束维护升级,建议大家使用 7.4 。

5
5
6
6

修改 composer 包

如果需要修改 vendor 中的第三方包,有两个办法:

1.Fork:修改代码→制作补丁,自己用 → 发起合并请求,回馈开源;

2.私有 composer 仓库:把修改后的包发布到 coding.net 制品库。

7
7
8
8

Lint:增量检查代码规范

清理了第三方代码之后,可以通过 Lint(代码静态分析工具)程序扫描自己的代码,PHP Lint 常用的是 CodeSniffer,内置知名的「PSR12」规范,包括很多规则,比如:

  • 每行代码最大长度 120 个字符;
  • 运算符左右各 1 个空格;
  • 文件结尾必须有一个空行。
9
9

老项目有成千上万的报错,一次难以清理干净,建议使用增量检查,具体请访问 CODING 帮助文档,搜索「增量检查」。


PHP 自动化测试

自动化测试要点

可测性:不要在系统中使用系统时间、随机数、实例化对象。

Fake:用于伪造测试数据,而不要在测试代码中写死 123、12:00:00,因为可能 999、00:00:00 时会报错。

Mock:拦截所有的第三方服务,比如测微信登录、支付,不可能每次测试都真的付款。

10
10

PHPUnit 在自动化测试时,可同时生成测试覆盖率的 HTML 报告,可以看到哪一行代码没有覆盖。这种报告包含代码,所以需要私有访问,可使用 CODING 通用报告功能,在持续集成中自动上传即可。

11
11
12
12
13
13

PHP 代码自动生成 API 文档

在项目开发中,最好让代码先行,在代码里写注释,这样可以保证注释与代码一起维护,然后通过工具自动生成文档。

14
14

在持续集成中自动生成文档,可上传到 CODING API 文档中,支持团队成员直接访问、加密分享。

15
15
16
16
17
17

点击观看课程回放

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
DevOps 代码质量实战(PHP 版)
查看完整直播回放:https://cloud.tencent.com/edu/learning/live-2857
可可爱爱没有脑袋
2020/10/16
7210
CODING DevOps 代码质量实战系列第三课:Java 版
连续创业者、DIY/Linux 玩家、知乎小 V,曾在创新工场、百度担任后端开发。十余年一线研发和带队经验,经历了 ToB、ToC、O2O、国内、出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review、DevOps、Git Workflow、敏捷开发、架构、极客办公硬件。
腾讯云 CODING
2020/08/26
6180
CODING DevOps 代码质量实战系列第三课:Java 版
DevOps 代码质量实战(Java 版)
查看完整直播回放:https://cloud.tencent.com/edu/learning/live-2859
可可爱爱没有脑袋
2020/10/16
8850
直播回顾 | DevOps 代码质量实战第三课
关注腾讯云大学,了解行业最新技术动态 戳【阅读原文】观看完整课程回顾 讲 师 介 绍  连续创业者、DIY/Linux 玩家、知乎小 V,曾在创新工场、百度担任后端开发。十余年一线研发和带队经验,经历了 ToB、ToC、O2O、国内、出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review、DevOps、Git Workflow、敏捷开发、架构、极客办公硬件。  Java 老项目常见质量问题 问题一:把 Jar 包提交到了代码库 Jar 包等二进制文件无法进行文本对比,体
腾讯产业互联网学堂1
2023/05/29
1850
直播回顾 | DevOps 代码质量实战第三课
​CODING DevOps 代码质量实战系列第二课,相约周三
随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一。《DevOps 代码质量实战(PHP 版)》 为 CODING DevOps 代码质量实战系列的第二课,同时也是本系列的 PHP 版,杨周老师将以 PHP Laravel 为例,为同学们讲解代码规范、Git workflow、持续集成、代码生成 API 文档、开发 composer 包、单元测试、Docker 等内容。
腾讯云 CODING
2020/08/11
3210
CODING DevOps 8月系列线上直播课开始报名啦!
关注腾讯云大学,了解行业最新技术动态 腾讯云大学,CODING DevOps 8月份系列直播分享课活动报名开始啦~ 此次课程分有两期,每期都包含了3个课时,循序渐进, 从夯实基础,到一场又一场的实战经验分享,让你飞速成长。 现在报名并参与集赞活动还有精美礼品等着你, 在学习之余,积极参与活动,跟我们一起传播分享云计算前沿技术知识吧! 叮咚~【腾讯云大学】提醒你,你有一份课程快递待取中哦~ 8月直播课 |第一期 8月11日—8月13日 每晚19:00——20:00 腾讯云大学重磅推出 《CODING D
腾讯产业互联网学堂1
2023/05/29
3320
CODING DevOps 8月系列线上直播课开始报名啦!
​CODING DevOps 代码质量实战系列第一课,本周开讲!
随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一。本次 CODING DevOps 代码质量实战系列第一课:《DevOps 代码质量实战:代码规范与 Git Flow》,将由 CODING 布道师、CODING DevOps 架构师杨周老师主讲,为同学们详细讲解提高代码质量的最佳实践,不只适合新项目,也为老项目提供完善的渐进式方案。
腾讯云 CODING
2020/08/10
4430
​CODING DevOps 线下沙龙回顾一:DevOps 代码质量实战
11 月 22 日,由 CODING 主办的 DevOps 技术沙龙系列「质量」专场在上海圆满结束。在活动现场,四位来自腾讯等知名企业的技术大咖们分享了研发质量与效能的实战经验,与观众们共同探讨如何采取有效手段以保证和提高软件质量。
腾讯云 CODING
2020/12/07
1K0
​CODING DevOps 线下沙龙回顾一:DevOps 代码质量实战
​CODING DevOps 代码质量实战系列第一课:代码规范与 Git Flow
连续创业者、DIY/Linux 玩家、知乎小 V,曾在创新工场、百度担任后端开发。十余年一线研发和带队经验,经历了 ToB、ToC、O2O、国内、出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review、DevOps、Git Workflow、敏捷开发、架构、极客办公硬件。
腾讯云 CODING
2020/08/25
5070
​CODING DevOps 代码质量实战系列第一课:代码规范与 Git Flow
Flarum 二次开发项目配置指南
上篇文 我们介绍了适用 Flarum 的 Docker LNMP 环境的配置,本文将进一步从本地环境搭建、版本控制的设计的角度,介绍一套可操作的 Flarum 项目配置与二次开发迭代方案。
zgq354
2020/06/28
3.7K0
Composer使用体验
简单来说,Composer是PHP的包依赖管理器。但是Composer并不是类似于Yum、Apt的包管理器。Composer可以用于包或者第三方库的安装,但是可以选择在Project范围内进行安装。Composer是受到Node的NPM启发。
大江小浪
2019/02/22
5660
DevOps 代码质量实战:代码规范与 Git Flow
查看完整直播回放:https://cloud.tencent.com/edu/learning/live-2837
可可爱爱没有脑袋
2020/10/16
1.5K0
如何发布一个自己的Composer依赖包
Composer是 用PHP开发的用来管理项目依赖的工具,当你在项目中声明了依赖关系后,composer可以自动帮你下载和安装这些依赖库,并实现自动加载代码。
Tinywan
2024/01/02
6290
如何发布一个自己的Composer依赖包
基于 Composer 的 PHP 模块化开发
这个话题之前是在微博公司内部做的技术分享,这里拿出来分享给大家。 基于 GitHub 或者其它平台托管的开源项目的引入大家应该都已经非常熟悉了,但是公司内部项目的模块化应该怎么做呢?这或许是不少朋友头疼的问题。 我们先聊聊 PHP 模块化开发演进的过程,在没有 GitHub 之前,我们大家获取与分享代码的方式主要是博客,国内的 CSDN 或者博客园还有很多很多,大家都是从文章内把代码复制到自己项目里面使用,真的是相当原始粗暴,但是那个时代也没有太多可选的方案。导致的现象就是一段代码在 N 个项目里出现,可能
overtrue
2018/07/05
1.7K0
​CODING DevOps 代码质量实战系列最后一课,周四发车
随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一。
腾讯云 CODING
2020/08/12
4460
ThinkPHP6.0安装使用小记
ThinkPHP6.0的前身是ThinkPHP5.2,因为6.0版本改动比较大,所以直接将原定的5.2改成6.0。 目前ThinkPHP6还没正式发布,还是Rc阶段,更新也比较频繁。 根据官方消息,计划在今年的5月1日之前发布第二个RC版本,届时还将迎来新版的手册,并且大部分扩展也会基本升级完成。
jwj
2022/05/18
7270
如何在 CentOS 8 上安装和使用 Composer创建PHP项目
Composer 是一种工具,可让您更好地组织用 PHP 开发的项目所使用的依赖项。除了轻松安装第三方库之外,Composer 还提供了几个命令来检查和安装任何更新、删除不必要的依赖项等等。
小颖club
2022/04/11
1.5K0
Travis CI 持续集成服务构建 Composer 类库简明教程
在项目开发过程中,编码工作只是软件开发整个过程中的一小部分环节,更多的我们需要去构建和测试我们的项目,以确保项目的健壮和稳定性。
柳公子
2018/09/17
1.5K0
Travis CI 持续集成服务构建 Composer 类库简明教程
如何在 Ubuntu 20.04 上安装和使用 Composer
本文最先发布在:https://www.itcoder.tech/posts/how-to-install-and-use-composer-on-ubuntu-20-04/
雪梦科技
2020/06/22
6.2K0
多图流带你玩转CODING DevOps
说人话就是可以把软件开发流程的制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动在CODING上来实现
wayn_aqua
2021/07/11
1.8K0
多图流带你玩转CODING DevOps
相关推荐
DevOps 代码质量实战(PHP 版)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档