建议 phper 尝试下静态分析工具 phpstan

2020-09-07 09:47:25 +08:00
 liuyibao
php 的主要缺点是代码容易写烂,这段时间尝试使用了 phpstan,的确很好,适合在现有项目上用。
目前流行的还有 psalm 以及性能比较高的 phan,但是综合来看 phpstan 更适合现有项目,因为错误级别可以自定义,只建议在新的 service 文件上检测,因为底层 model 以及控制器依赖于框架,会报很多警告。

项目根目录创建文件 phpstan.neon,建议配置如下:
parameters:
level: 8
checkMissingIterableValueType: false
bootstrapFiles:
- phpstan/bootstrap.php

(这个启动脚本看自己项目,如果都是标准 composer 加载可能不需要写,如果是使用类似 yii 这种是需要加载的,这个类似入口文件,自己可以改一改)

PHPStorm 马上也要内置支持了:

https://blog.jetbrains.com/phpstorm/2020/07/phpstan-and-psalm-support-coming-to-phpstorm/


别问我 2020 了为啥还在用 PHP ^__^
4195 次点击
所在节点    PHP
14 条回复
monospace
2020-09-07 09:56:21 +08:00
为啥 0202 年了还在用 PHP ?🐶
newtype0092
2020-09-07 10:19:37 +08:00
@liuyibao @monospace 因为 2020 年以前写的 PHP 项目可能得维护到 2030 年🐶
ramdava
2020-09-07 10:33:23 +08:00
@monospace
@newtype0092
@liuyibao

因为 PHP 是世界上最好的语言,不接受反驳
liuxu
2020-09-07 10:39:39 +08:00
@newtype0092
@monospace
@liuyibao
@ramdava

然后 2030 年的小老弟接手项目后,添加的新需求 PHP 代码可能被 2040 年的少年维护
pigzzz
2020-09-07 10:43:29 +08:00
@liuxu 总结,php 千秋万代,源源不息
Huelse
2020-09-07 13:46:34 +08:00
@pigzzz #5 新的语言和新的架构总会不断出现,php 哪怕只有 1%的占有率也能亘古不变,源远流长
richzhu
2020-09-07 13:54:22 +08:00
哈哈哈哈,我正在看这个帖子,旁边一个 00 后同事来贱贱的说了一句,php 是什么? 跟万能充是一个东西嘛?
wangluwl
2020-09-07 14:17:50 +08:00
@richzhu 依然可以拍黄片
wule61
2020-09-07 15:50:15 +08:00
老铁,该用 golang 了
fhsan
2020-09-07 16:24:37 +08:00
看了下培训班,现在没培训 php 的了?
dvaknheo
2020-09-07 17:32:02 +08:00
ignoreErrors:
- '#Unsafe usage of new static#'
- '#no return typehint specified#'
- '#with no typehint specified#'
- '#has no typehint specified#'

NjcyNzMzNDQ3
2020-09-08 09:36:29 +08:00
感谢分享
avenger
2020-09-09 10:14:15 +08:00
这个也可以试一下,配合使用,疗效更好:
https://psalm.dev
liuyibao
2020-09-10 09:09:38 +08:00
@avenger 👍,这位是老司机

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/704742

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX