Skip to content

PropertyNotSetInConstructor

初期化されていないプロパティは静的に分析するのが難しいです。ミスを防ぐために、Psalmはすべてのプロパティが初期化されるべきであることを強制します。 これはMissingConstructorとこの問題を通じて行われます。 その後、Psalmはコードベース内のすべてのプロパティが初期化されていると仮定します。 これにより、初期化の欠如を報告するだけでなく、RedundantPropertyInitializationCheckも報告できるようになります。 この問題は、デフォルト値を持たない非nullプロパティがクラスのコンストラクタで設定されていない場合に発生します。 プロジェクトが初期化されていないプロパティに依存している場合は、この問題を抑制し、同様にMissingConstructorRedundantPropertyInitializationCheckも抑制することをお勧めします。

<?php
class A {
    /** @var string */
    public $foo;

    public function __construct() {}
}

ユーザーノート