V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
liuyibao
V2EX  ›  PHP

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

  •  
  •   liuyibao · Sep 7, 2020 · 5338 views
    This topic created in 2059 days ago, the information mentioned may be changed or developed.
    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 replies    2020-09-10 09:09:38 +08:00
    monospace
        1
    monospace  
       Sep 7, 2020
    为啥 0202 年了还在用 PHP ?🐶
    newtype0092
        2
    newtype0092  
       Sep 7, 2020   ❤️ 1
    @liuyibao @monospace 因为 2020 年以前写的 PHP 项目可能得维护到 2030 年🐶
    ramdava
        3
    ramdava  
       Sep 7, 2020
    @monospace
    @newtype0092
    @liuyibao

    因为 PHP 是世界上最好的语言,不接受反驳
    liuxu
        4
    liuxu  
       Sep 7, 2020
    @newtype0092
    @monospace
    @liuyibao
    @ramdava

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

    NjcyNzMzNDQ3
        12
    NjcyNzMzNDQ3  
       Sep 8, 2020
    感谢分享
    avenger
        13
    avenger  
       Sep 9, 2020
    这个也可以试一下,配合使用,疗效更好:
    https://psalm.dev
    liuyibao
        14
    liuyibao  
    OP
       Sep 10, 2020
    @avenger 👍,这位是老司机
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5733 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 07:47 · PVG 15:47 · LAX 00:47 · JFK 03:47
    ♥ Do have faith in what you're doing.