php代码质量怎么提高,如何提高PHP代码的质量?第一部分 自动化工具

重复的代码是不好的,每个人都知道。有时我们错误地创建了这样的代码,我们从来没有注意到它。有时我们这样做是因为我们懒惰。最好是配备一个工具,它可以在构建时提示这个问题。PHPCPD - PHP复制/粘贴检测器。

通过运行以下命令来安装它:$ php composer.phar require --dev sebastian/phpcpd

然后将目标添加到build.xml:

...

在vendor目录上运行的重复代码检查的示例输出:phpcpd 4.0.0 by Sebastian Bergmann.

Found 74 clones with 2929 duplicated lines in 97 files:- /home/maciej/workspace/php-testing/vendor/phpspec/phpspec/src/PhpSpec/Matcher/TriggerMatcher.php:81-102

/home/maciej/workspace/php-testing/vendor/phpspec/phpspec/src/PhpSpec/Matcher/TriggerMatcher.php:114-135- /home/maciej/workspace/php-testing/vendor/squizlabs/php_codesniffer/src/Reports/Full.php:81-114

/home/maciej/workspace/php-testing/vendor/squizlabs/php_codesniffer/src/Reports/Code.php:162-195(...)6

想要真正深入的代码分析?如果你从头开始你的项目,你应该看看Phan - 它是一个非常强大的代码分析器,它会让你的代码变得漂亮。在https://github.com/phan/phan上查看。安装非常简单 - 只需安装php-ast扩展(在Ubuntu中,您可以尝试运行sudo apt-get install php-ast)并运行:$ php composer.phar require --dev phan/phan

然后创建一个配置文件 .phan/config.php 内容为:<?phpreturn  [    'target_php_version' => '7.1',    'directory_list' => [        'src',        'vendor/symfony/console',

],    "exclude_analysis_directory_list" => [        'vendor/'

],

];

在build.xml文件中也创建phan目标:

...

现在,您可以运行您的代码分析,如果您犯了错误(例如……为类属性声明错误的phpdoc类型),您应该看到这样的消息:MyProject > phan:src/Domain/PriceComparator.php:17 PhanTypeMismatchProperty Assigning \Domain\PriceConverter to property but \Domain\PriceComparator::priceConverter is intsrc/Domain/PriceComparator.php:35 PhanNonClassMethodCall Call to method convert on non-class type int

Phan很神奇 - 它读取你的整个代码并对它执行多次检查,包括将phpdoc声明与实际使用变量、方法、类等进行比较,你可以查看https://github.com/phan/phan#features的所有特征列表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第二周周四DailyReporting——PM(李忠)

这几天不知道怎么的&#xff0c;项目一直进展缓慢&#xff0c;心里有些着急&#xff0c;下面是几个总结&#xff1a; &#xff08;1&#xff09;数据库来的时候&#xff0c;我们的能否承受大数据的考验&#xff1b; &#xff08;2&#xff09;组员这几天都有些闲&#xff0c;不…

matlab多缝夫琅禾费,常见的多缝夫琅禾费衍射.ppt

常见的多缝夫琅禾费衍射* * 5.8 多缝夫琅禾费衍射 所谓多缝是指在一块不透光的屏上&#xff0c;刻有 N 条等间距、等宽度的通光狭缝。夫琅禾费多缝衍射的装置如图所示。其每条狭缝均平行于 y1 方向&#xff0c;沿 x1 方向的缝宽为 a&#xff0c;相邻狭缝的间距为 d&#xff0c;…

php 判断心跳包报错,第29问:MySQL 的复制心跳说它不想跳了

问题最近年末&#xff0c;你们的数据库常常跑批量大事务&#xff0c;会发现复制忽然断开&#xff0c;报错“心跳与本地信息不兼容”&#xff1a; 会是什么缘由&#xff1f;php 实验咱们先来复现一下&#xff0c;再进行分析。html宽油&#xff0c;作一对主从数据库&#xff1a;m…

Linux 常用测试命令

1. cpu info: 2. memory info 3. 下载测试&#xff1a;这里有测试下载文件&#xff1a;wget http://cachefly.cachefly.net/100mb.test 4. 磁盘性能:命令&#xff1a;dd if/dev/zero oftest bs64k count4k oflagdsync 5. cpu负载信息命令&#xff1a;uptime解释&#xff1a; 3个…

php上操作redis,PHP操作redis

$redis new Redis();$redis->connect(localhost, 6379);lget/lindex$redis->lget(arg1, arg2);arg1: list的名字arg2: 获取list值的index&#xff0c;可以是小于零的数&#xff0c;表示从tail到headlinsert$redis->linsert(arg1, arg2, arg3, arg4);arg1: list的名字…

解决未知的服务器标记“asp:ListView”。

在.net 2.0后&#xff0c;微软后续出现了.net 3.0, .net 3.5,记不清是那个版本后&#xff0c;asp.net控件里面就有了asp:ListView这个控件&#xff0c;这个控件运行效率高&#xff0c;配置灵活非常好用&#xff0c;但是在使用的时候&#xff0c;需要在Web.config中进行配置一下…

python求二叉树高度,求二叉树的高度(深度)和宽度

定义二叉树节点public class TreeNode{int val;TreeNode left null;TreeNode right null;public TreeNode(int val){this.val val;}}求二叉树的深度使用递归&#xff0c;分别求出左子树的深度、右子树的深度&#xff0c;两个深度的较大值1public int maxDepth(TreeNode root…

操作系统的版本概况

基于MS-DOS的操作系统&#xff1a; Windows 1.0 Windows 2.0 Windows 3.x Windows 95 Windows 98 Windows ME 基于NT的操作系统&#xff1a; Windows NT 3.x Windows NT 4.0 Windows 2000 Windows XP Windows Vista Windows Server 2003 基于CE的操…

PHP中的stdClass 【转】

如果所有的Class都应该存在于一个默认的层级中的话&#xff0c;那么最顶层应该是最为一般的Class&#xff0c;也就是说极为抽象的&#xff0c;每一个下层的Class均比其上层的Class&#xff08;即父类&#xff09;更加专门化。基于该思想&#xff0c;在PHP中&#xff0c;这个顶层…

计算机仿真技术-基于matlab的电子信息类课程课后答案,计算机仿真技术:基于MATLAB的电子信息类课程(第4版)...

目 录第1章 MATLAB语言概述\t11&#xff0e;1 MATLAB语言及特点\t11&#xff0e;2 MATLAB的工作环境\t21&#xff0e;2&#xff0e;1 MATLAB系统的安装\t21&#xff0e;2&#xff0e;2 MATLAB系统的启动\t21&#xff0e;2&#xff0e;3 MATLAB的命令窗口\t31&#xff0e;2&…

UVa11137 Ingenuous Cubrency

原题传送&#xff1a;http://uva.onlinejudge.org/external/111/11137.html 递推&#xff0c;动态规划。 d[i][j]表示使用不超过i的 i 的整数的立方&#xff0c;累加和为 j 的方案数。 则有状态转移方程&#xff1a; d[i][j] d[i - 1][j] d[i][j - i3]。 初始条件d[0][0] 1;…

php jquery模板替换图片,仿jquery插件官网头像更换(原创)

插件描述&#xff1a;一款简单实用的头像更换插件内附有ajax无刷新代码使用方法发布时间&#xff1a;2018-1-25 23:41首先引入jquery:js$(".close,.gb").click(function(){$(".pic_box").animate({top:-1000px},500);}),$(".my_box").click(func…