+ abstract Model :: make(array{...})
+- SubModel
+- AnotherSubModel
+- ...
< /code>
Ich habe eine abstrakte Modellklasse und mehrere untergeordnete Klassen, die sie erweitern. Die Modellklasse verfügt über eine Make -Funktion, die eine Reihe von Eigenschaften akzeptiert und eine neue statische Instanz der Kinderklasse zurückgibt, die sie aufgerufen wird. Es verwendet Reflexion, um jede Eigenschaft aus dem Array der richtigen Eigenschaft in der untergeordneten Klasse zuzuweisen. < /P>
Beispielcode: < /p>
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>
Ich versuche herauszufinden, wie ich die Fertigstellung in PHPSTORM erstellt, damit nur gültige Array -Tasten übergeben werden. Jedes Submodell verfügt über eine bestimmte Liste von Eigenschaften, die festgelegt werden können. Idealerweise würde ich in der Lage sein, die Form des Eigenschaftenarrays in der Kinderklasse zu erklären und die IDE aufmerksam zu machen, wenn sich eine ungültige Eigenschaft im Array befindet, eine Eigenschaft fehlt und nur allgemeine Unterstützung, um zu wissen, welche Eigenschaften sind erlaubt. < /p>
Die Phpstan -Dokumente für Array -Formen, z. Array {'foo': int, "baly": string}
scheint eine ideale Möglichkeit, die Form zu beschreiben, die mein Eingangsarray für die zugehörige Modellklasse übereinstimmt. Ich kann jedoch nicht herausfinden, wie/wo die Array-Form in meiner Unterklasse deklariert werden soll, ohne die Methode in jeder Subklasse erneut zu implementieren.
Meine Frage, um die Code -Fertigstellung in einer Reihe von Klassen zu bearbeiten, die ich habe. < /p> [code]+ abstract Model :: make(array{...}) +- SubModel +- AnotherSubModel +- ... < /code> Ich habe eine abstrakte Modellklasse und mehrere untergeordnete Klassen, die sie erweitern. Die Modellklasse verfügt über eine Make -Funktion, die eine Reihe von Eigenschaften akzeptiert und eine neue statische Instanz der Kinderklasse zurückgibt, die sie aufgerufen wird. Es verwendet Reflexion, um jede Eigenschaft aus dem Array der richtigen Eigenschaft in der untergeordneten Klasse zuzuweisen. < /P> Beispielcode: < /p> 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> Ich versuche herauszufinden, wie ich die Fertigstellung in PHPSTORM erstellt, damit nur gültige Array -Tasten übergeben werden. Jedes Submodell verfügt über eine bestimmte Liste von Eigenschaften, die festgelegt werden können. Idealerweise würde ich in der Lage sein, die Form des Eigenschaftenarrays in der Kinderklasse zu erklären und die IDE aufmerksam zu machen, wenn sich eine ungültige Eigenschaft im Array befindet, eine Eigenschaft fehlt und nur allgemeine Unterstützung, um zu wissen, welche Eigenschaften sind erlaubt. < /p> Die Phpstan -Dokumente für Array -Formen, z. Array {'foo': int, "baly": string} [/code] scheint eine ideale Möglichkeit, die Form zu beschreiben, die mein Eingangsarray für die zugehörige Modellklasse übereinstimmt. Ich kann jedoch nicht herausfinden, wie/wo die Array-Form in meiner Unterklasse deklariert werden soll, ohne die Methode in jeder Subklasse erneut zu implementieren.
Meine Frage, um die Code -Fertigstellung in einer Reihe von Klassen zu bearbeiten, die ich habe.
+ abstract Model :: make(array{...})
+- SubModel
+- AnotherSubModel
+- ...
Ich habe eine Bildergalerie und alle Bilder sind quadratisch. Die Bilder befinden sich in ihren Divs und einem großen Div mit der flexiblen Anzeige, um alle Divs als übergeordnetes Element zu...
Ich habe eine Bildergalerie und alle Bilder sind quadratisch. Die Bilder befinden sich in ihren Divs und einem großen Div mit der flexiblen Anzeige, um alle Divs als übergeordnetes Element zu...
Ich habe die Aufgabe, eine menschliche Eltern-Kinder-Verbindung über OOP und Vererbung nachzubilden. Es gibt also Klassen für Vater und Mutter, und es gibt auch eine Klasse für Kinder, die zuerst von...
Ich bin gerade dabei, etwas über Methoden in Java zu lernen und war neugierig zu wissen, ob es schlechte Praxis ist, eine Methode als Argument innerhalb einer anderen Methode zu übergeben. Obwohl ich...