En PHPStorm, ¿cómo puedo hacer que la sugerencia de tipos funcione cuando tengo un método de superclase que devuelve un tipo diferente de cada subclase?

Tengo una clase que hereda de una superclase y donde la superclase tiene una estáticafind() Método que crea instancias de instancias de la subclase (patrón de registro activo).

class ActiveRecordClass {

    /**
     * @return mixed
     */
    public static function find() {
        // Code returns instance of called class
    }
}

class ModelClass extends ActiveRecordClass {

}

// returns instance of ModelClass, but PHPStorm doesn't realise
ModelClass::find($model_id); 

Por el momento, el docblock no es muy bueno para completar el código y escribir sugerencias. No puedo usar la superclase como un tipo de retorno ya que las subclases tienen diferentes métodos debido a las columnas DB.

¿Cómo puedo indicar a PHPStorm que la superclasefind() El método devuelve una instancia de la subclase desde la que se llama, para que funcione la finalización del código.

Respuestas a la pregunta(2)

Su respuesta a la pregunta