Код: Выделить всё
abstract class Model {
public static function make(array $props): static
{
// ... magic
}
}
class SubModel extends Model {
protected ?string $subModelProp = null;
}
$instance = SubModel::make(['subModelProp' => 'Hello, World']);
// I'd like code completion in the IDE to tell me notAProp isn't valid:
$instanceTwo = SubModel::make(['notAProp' => 'Whoops']);
< /code>
Я пытаюсь выяснить, как получить завершение работы в Phpstorm, чтобы пройти только действительные клавиши массива. Каждая подмодель имеет отчетливый список свойств, которые могут быть установлены. В идеале я хотел бы иметь возможность объявить форму массива свойств в детском классе и попросить IDE предупредить меня, если в массиве неверное свойство отсутствует, и просто общая поддержка завершения, чтобы узнать, какие свойства допускаются. < /p>
Документы Phpstan для массивов, например, Array {'foo': int, "bar": string}
Все руководство приветствуется! п>
Подробнее здесь: https://stackoverflow.com/questions/794 ... rent-class