deptrac
在软件层之间执行依赖规则
PHPUnit
PHP单元测试工具
exakat
PHP自动化代码审查引擎
GrumPHP
提供git hooks来检测每次提交的代码
phan
来自etsy的现代化静态分析器
作为一名PHPer,在开发(ban zhuan)过程中,没有一个犀利的编辑器怎么能行。sublime是我最喜欢的编辑器,具有强大的拓展功能,有许多丰富的插件支撑。
下面是我目前使用的插件:
Package Control
强大的Sublime插件管理工具
Boxy
一个十足极客范的Sublime主题,支持多种主题颜色切换
原文地址:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality
在过去做了不少代码审核,发现了一些代码质量上普遍存在的问题,以下是其中的前五名:
类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解。这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面。
解决方法:提取类/抽离方法
正如上面提到的,像“臃肿的类”(一个类提供了本该有几个类提供的功能)这种代码异味应该将原有类中的方法和属性移动到适当数目的新类中去。旧类中对应新类的方法和属性应该被移除。
另外,有时候一些类过于臃肿是因为它包含了被其他类使用本应该是其他类的成员方法的成员方法。这些方法也应该被迁移到合适的类中。
在PHP开发过程中找到并修复性能瓶颈(performance bottlenecks)往往是非常困难和耗时的。为了定位问题,我们可能会在疑似影响性能的代码的开始和结束之间打上标记点,计算时间差,来定位问题,CI框架提供的基准测试类就是这样工作,这种方式对小型项目起到方便快捷的作用,但对大项目往往吃力不讨好,好比在工业时代,却是用石器时代的工具。这时候我们可以借助Xdebug,webgrind这样的工具来定位到和可视化php代码中的性能瓶颈。
Xdebug是PHP拓展,可以用来跟踪,调试和分析PHP程序的运行状况。而Webgrind是Web应用,提供一个可视化工具,来分析、查看Xdebug性能日志功能。在Linux KDE环境下可以用KChaceGrind
,windows 下可以用winChaceGrind
来替换Webgrind查看分析Xdebug日志。
原文链接:https://www.theodo.fr/blog/2016/06/improve-the-performance-of-your-webapp-configure-nginx-to-cache/
Sometimes, improving the user’s loading experience is not enough, and you need real changes to make your application load faster.
So you try CSS and JS minification or image compression but your app is only a bit faster to load. These tricks reduce the size of resources that need to be downloaded, but what if your users didn’t have to download anything at all? That’s what caching is for!
In this article, I will explain how you can configure Nginx to enable the browser cache, thus avoiding painfully slow downloads. If you are not familiar with Nginx, I recommend reading this article.
原文链接:https://ma.ttias.be/how-to-clear-php-opcache/
PHP can be configured to store precompiled bytecode in shared memory, called Opcache. It prevents the loading and parsing of PHP scripts on every request. This guide will tell you how to flush that bytecode Opcache, should you need it.
You may want to flush the APC (PHP < 5.5) or Opcache (PHP >= 5.5) in PHP when it has cached code you want to refresh. As of PHP 5.5, the APC cache has been replaced by Opcache and APC only exists as a user key/value cache, no longer a bytecode cache.