You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@alxndr-w Beim Verbessern der RexStan-Meldungen bin ich spätestens bei Entry an dem Punkt, dass das Verbessern auch Entscheidungen zu den Schnittstellen selbst berührt. Da müsstest Du was entscheiden bzw. die Linie vorgeben.
Welche Rückgabetypen aus Gettern werden eigentlich benötigt bzw. wie sollen Getter-Rückgaben verarbeitbar sein. Die aktuelle Linie ist nicht eindeutig. z.B. liefert ein Getter ...): string (Entry), ein anderer ...) :?string (Author).
Beispiel: public function getName(): ?string (Klasse Author)
Ist es notwendig bzw. entspricht Deiner Art der Programmierung, zwischen leer und kommt nicht vor im $data-Array zu unterscheiden? Man kann spart dann nicht wirklich Code ein; außer dass man den Feldnamen in der Tabelle nicht kennen muss:
$name = $entry->getName();
if (null !== $name) {
... mach was ...
}
vs.
if ($entry->hasValue('name') {
$name = $entry->getValue('name');
... mach was ...
}
Ich nutze so Getter-Funktion, um auch Ausnahmen im Vorfeld zu glätten und die Rückgabe typsicher ohne weitere Abfragen nutzen zu können. Ggf. auch um einen Default-Wert einzusetzen. Ggf. auch um ungültige Werte (nicht belegt, falscher Typ) durch en Default zu ersetzen.
Beispiel: public function getName(string: default=''): string.
Das ist halt eine Sache des Programmierstils. Es ist Dein Addon. Du sagst wie es sein soll.
PS: ich würde hier auch nicht auf yakamara/yform#1520 warten, denn es geht m.E. um die Frage, ob der Getter nur ein handlicher Ersatz für ->getValue('xyz') sein soll oder einen Mehrwert bieten soll (zuindest typgenaue Rückgabe, z.B. '' statt null).
The text was updated successfully, but these errors were encountered:
Ich bin happy, wenn ich mir die Feldnamen nicht merken muss, sondern Vorschläge bekomme
Manchmal werden Methoden noch "ausgebaut", wie bspw. das Datum um direkte Formatierung oder bei Medien-Felder um das Medien-Objekt. Spätestens dann ist es komisch, da eigene Methoden zu haben und für andere nicht.
Ich sehe halt bei Author die Methode public function getName(): ?string und bei Entry finde ich public function getName(): string, also ohne die null-Option. Für mich wäre der Mehrwert, dass ich den Feldnamen in der DB nicht kennen muss und dass ich wie bei Entry immer einen ggf. leeren String bekomme.
meinen wir daher dasselbe mit "Ich wäre für typgenaue Rückgaben als Mehrwert.", also ohne null-Option außer wenn es null als Leerwert benötigt.
@alxndr-w Beim Verbessern der RexStan-Meldungen bin ich spätestens bei Entry an dem Punkt, dass das Verbessern auch Entscheidungen zu den Schnittstellen selbst berührt. Da müsstest Du was entscheiden bzw. die Linie vorgeben.
Welche Rückgabetypen aus Gettern werden eigentlich benötigt bzw. wie sollen Getter-Rückgaben verarbeitbar sein. Die aktuelle Linie ist nicht eindeutig. z.B. liefert ein Getter
...): string
(Entry), ein anderer...) :?string
(Author).Beispiel:
public function getName(): ?string
(KlasseAuthor
)Ist es notwendig bzw. entspricht Deiner Art der Programmierung, zwischen leer und kommt nicht vor im $data-Array zu unterscheiden? Man kann spart dann nicht wirklich Code ein; außer dass man den Feldnamen in der Tabelle nicht kennen muss:
vs.
Ich nutze so Getter-Funktion, um auch Ausnahmen im Vorfeld zu glätten und die Rückgabe typsicher ohne weitere Abfragen nutzen zu können. Ggf. auch um einen Default-Wert einzusetzen. Ggf. auch um ungültige Werte (nicht belegt, falscher Typ) durch en Default zu ersetzen.
Beispiel:
public function getName(string: default=''): string
.Das ist halt eine Sache des Programmierstils. Es ist Dein Addon. Du sagst wie es sein soll.
PS: ich würde hier auch nicht auf yakamara/yform#1520 warten, denn es geht m.E. um die Frage, ob der Getter nur ein handlicher Ersatz für
->getValue('xyz')
sein soll oder einen Mehrwert bieten soll (zuindest typgenaue Rückgabe, z.B.''
stattnull
).The text was updated successfully, but these errors were encountered: