Psalm v4.0.0 Release Notes

Release Date: 2020-10-20 // 7 months ago
  • 🚀 This release supports PHP 8 and its new features.

    It bumps the minimum requirement to PHP 7.3.

    👍 It includes better unused variable detection.

    It includes these breaking changes for v4:

    👉 User-facing

    • ✂ remove issues MisplacedRequiredParam, TypeCoercion, MixedTypeCoercion
    • ✂ remove support for @template-typeof
    • 0️⃣ default to not disabling checks with UnresolvableInclude (#2818)
    • ✂ Remove requireVoidReturnType, useAssertForType config flags, both now permanently true
    • 🔄 Change default on resolveFromConfigFile to "true". This means if your Psalm config is not in the same directory that you run Psalm from, and you want to keep all the paths correct, you'll need to add resolveFromConfigFile="false" to maintain existing path resolution

    🔌 Internals (for plugin developers)

    • class constants should live in their own storage object
    • 📇 rename TFn to TClosure, ObjectLike to TKeyedArray, GetClassT to TDependentGetClass, GetTypeT to TDependentGetType
    • ✂ Remove return type manipulation from AfterFunctionCallAnalysisInterface – use the MethodReturnTypeProviderInterface and FunctionReturnTypeProviderInterface hooks instead
    • ➕ Added return and param types to plugin hooks