+ abstract Model :: make(array{...})
+- SubModel
+- AnotherSubModel
+- ...
< /code>
У меня есть абстрактный класс модели и несколько классов ребенка, расширяющие его. Класс модели имеет функцию создания, которая принимает множество свойств и возвращает новый статический экземпляр любого ребенка, который он призван. Он использует отражение, чтобы назначить каждое свойство из массива к правильному свойству в классе дочерних.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}
кажется идеальным способом описания формы, которую нуждается в массиве моего ввода, чтобы соответствовать соответствующему классу модели. Тем не менее, я не могу понять, как/где объявить форму массива в моем подклассном классе без повторного внедрения метода создания в каждом субпословном классе.
Мой вопрос, чтобы получить завершение кода, работая в наборе классов, которые у меня есть. < /p> [code]+ abstract Model :: make(array{...}) +- SubModel +- AnotherSubModel +- ... < /code> У меня есть абстрактный класс модели и несколько классов ребенка, расширяющие его. Класс модели имеет функцию создания, которая принимает множество свойств и возвращает новый статический экземпляр любого ребенка, который он призван. Он использует отражение, чтобы назначить каждое свойство из массива к правильному свойству в классе дочерних.abstract class Model {
public static function make(array $props): static { // ... magic }
// 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} [/code] кажется идеальным способом описания формы, которую нуждается в массиве моего ввода, чтобы соответствовать соответствующему классу модели. Тем не менее, я не могу понять, как/где объявить форму массива в моем подклассном классе без повторного внедрения метода создания в каждом субпословном классе.
У меня есть вопрос о завершении завершения кода для работы в наборе классов, которые у меня есть. Класс модели имеет функцию создания, которая принимает множество свойств и возвращает новый статический экземпляр любого ребенка, который он призван....
Мой вопрос, чтобы получить завершение кода, работая в наборе классов, которые у меня есть.
+ abstract Model :: make(array{...})
+- SubModel
+- AnotherSubModel
+- ...
У меня есть абстрактный класс модели и несколько классов ребенка, расширяющие...
У меня есть родительский класс для моделей фреймов данных pandas. Этот класс содержит полезные функции для проверки и т. д.
Дочерний класс используется для определения моделей.
Один из методов родительского класса принимает экземпляр дочернего...
У меня есть абстрактный класс, из которого я извлекаю различные классы, которые я использую для пользовательского интерфейса, у меня есть виртуальный метод, который я переопределяю, но Unity показывает мне это предупреждение, когда я перехожу к...