V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuyibao
V2EX  ›  PHP

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

  •  
  •   liuyibao · 2020-09-07 09:47:25 +08:00 · 4444 次点击
    这是一个创建于 1567 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 ^__^
    14 条回复    2020-09-10 09:09:38 +08:00
    monospace
        1
    monospace  
       2020-09-07 09:56:21 +08:00
    为啥 0202 年了还在用 PHP ?🐶
    newtype0092
        2
    newtype0092  
       2020-09-07 10:19:37 +08:00   ❤️ 1
    @liuyibao @monospace 因为 2020 年以前写的 PHP 项目可能得维护到 2030 年🐶
    ramdava
        3
    ramdava  
       2020-09-07 10:33:23 +08:00
    @monospace
    @newtype0092
    @liuyibao

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

    然后 2030 年的小老弟接手项目后,添加的新需求 PHP 代码可能被 2040 年的少年维护
    pigzzz
        5
    pigzzz  
       2020-09-07 10:43:29 +08:00
    @liuxu 总结,php 千秋万代,源源不息
    Huelse
        6
    Huelse  
       2020-09-07 13:46:34 +08:00
    @pigzzz #5 新的语言和新的架构总会不断出现,php 哪怕只有 1%的占有率也能亘古不变,源远流长
    richzhu
        7
    richzhu  
       2020-09-07 13:54:22 +08:00
    哈哈哈哈,我正在看这个帖子,旁边一个 00 后同事来贱贱的说了一句,php 是什么? 跟万能充是一个东西嘛?
    wangluwl
        8
    wangluwl  
       2020-09-07 14:17:50 +08:00
    @richzhu 依然可以拍黄片
    wule61
        9
    wule61  
       2020-09-07 15:50:15 +08:00
    老铁,该用 golang 了
    fhsan
        10
    fhsan  
       2020-09-07 16:24:37 +08:00
    看了下培训班,现在没培训 php 的了?
    dvaknheo
        11
    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
        12
    NjcyNzMzNDQ3  
       2020-09-08 09:36:29 +08:00
    感谢分享
    avenger
        13
    avenger  
       2020-09-09 10:14:15 +08:00
    这个也可以试一下,配合使用,疗效更好:
    https://psalm.dev
    liuyibao
        14
    liuyibao  
    OP
       2020-09-10 09:09:38 +08:00
    @avenger 👍,这位是老司机
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1170 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.