也是拿來掃 PHP 程式碼的 PHPStan…

综合编程 2017-12-31

PHPStan 也是 PHP 的靜態分析工具,官方給的 slogan 是「PHP Static Analysis Tool - discover bugs in your code without running it!」。然後官方給了一個 GIF,直接看就大概知道在幹什麼了:

Phan 類似,也是要 PHP 7+ 才能跑,不過實際測試發現不像 Phan 需要 php-ast

PHPStan requires PHP ^gt;= 7.0. You have to run it in environment with PHP 7.x but the actual code does not have to use PHP 7.x features. (Code written for PHP 5.6 and earlier can run on 7.x mostly unmodified.)
PHPStan works best with modern object-oriented code. The more strongly-typed your code is, the more information you give PHPStan to work with.
Properly annotated and typehinted code (class properties, function and method arguments, return types) helps not only static analysis tools but also other people that work with the code to understand it.

拿上一篇「 用 Phan 檢查 PHP 程式的正確性 」的例子測試,也可以抓到類似的問題:

vendor/bin/phpstan analyse -l 7 src/
 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%

 ------ --------------------------------------------------------------
  Line   src/Foo.php
 ------ --------------------------------------------------------------
  13     Method GslinFoo::g() should return string but returns null.
 ------ --------------------------------------------------------------


 [ERROR] Found 1 error

這樣總算把積壓在 tab 上關於 PHP 工具都寫完了,之後要用才有地方可以翻... XD

您可能感兴趣的

Representative Line: Tern Back In the process of resolving a ticket, Pedro C found this representative line, which has nothing to do with the bug he was fixing, but was just ...
在 PHP 中使用 `yield` 来做内存优化 你有没有想过 “在 PHP 中使用 yield 会有什么益处”,我将为你节省一些谷歌搜索的时间; 我列出了一些要向你介绍的要点来全面认知 yield : 什么是 yield 。 yield & return 的区别。 yield 有什么选项。 ...
Using if-condition to check the filename imacros How do I use if statements to check the content of the page? How do I use if statements to check the content of the page...
编程语言不在于有没有钱途,在于你写的好不好... 抱歉,最近实在太忙,停更了一周多,当然忙肯定不是主要理由,是写文章的动力还不够,毕竟相比写文章,吃鸡游戏能吸引我更多,周末打了一天吃鸡,累死我了。 去了好久未逛的V2EX(基本每周看一次的节奏),有一种上错幼儿园大巴的感觉,探讨哪一种语言有“钱途”,这是个完...
PHP实现QQ登录的开发教程 第三方登录,就是使用大家比较熟悉的比如QQ、微信、微博等第三方软件登录自己的网站,这可以免去注册账号、快速留住用户的目的,免去了相对复杂的注册流程。下边就给大家讲一下怎么使用PHP开发QQ登录的功能。 1、进入QQ互联官网进行登录(可以使用自己的QQ或者重新注册一个QQ号作为咱们项目的单独QQ...