phan v3.0.0 Release Notes

Release Date: 2020-05-09 // almost 4 years ago
  • 🚀 The Phan 3.x releases support analysis of php 7.0-7.4, and can be executed with php 7.2+.

    🚀 Use the older Phan 2.x releases if you need to continue to execute Phan with php 7.1.
    🚀 Use the older Phan 1.x releases if you need to execute Phan with php 7.0.

    Backwards incompatible changes:

    • 🔒 Drop PHP 7.1 support. PHP 7.1 reached its end of life for security support in December 2019.
      🚀 Many of Phan's dependencies no longer publish releases supporting php 7.1,
      which will likely become a problem running Phan with future 8.x versions
      🚀 (e.g. in the published phar releases).
    • ⬇️ Drop PluginV2 support (which was deprecated in Phan 2) in favor of PluginV3.
    • ✂ Remove deprecated classes and helper methods.

    🆕 New features(CLI, Config):

    • Support PHAN_COLOR_PROGRESS_BAR as an environment variable to set the color of the progress bar.
      👀 Ansi color names (e.g. light_blue) or color codes (e.g. 94) can be used. (See src/Phan/Output/Colorizing.php)

    🆕 New features(Analysis):

    • Infer that foreach keys and values of possibly empty iterables are possibly undefined after the end of a loop. (#3898)
    • 👍 Allow using the polyfill parser to parse internal stubs. (#3902)
      👍 (To support newer syntax such as union types, trailing commas in parameter lists, etc.)

    🐛 Bug fixes

    • 🛠 Fix handling of windows path separators in phan_client (from 2.7.3-dev)
    • 🛠 Fix a crash when emitting PhanCompatibleAnyReturnTypePHP56 or PhanCompatibleScalarTypePHP56 for methods with no parameters. (from 2.7.3-dev)