Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Welche Rückgabetypen aus Gettern werden eigentlich benötigt? #115

Open
christophboecker opened this issue Sep 11, 2024 · 3 comments
Open
Labels
question Further information is requested

Comments

@christophboecker
Copy link
Member

christophboecker commented Sep 11, 2024

@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).

@alxndr-w
Copy link
Member

  • Ich wäre für typgenaue Rückgaben als Mehrwert.
  • 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.

@alxndr-w alxndr-w added the question Further information is requested label Sep 13, 2024
@christophboecker
Copy link
Member Author

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
Copy link
Member

Ich denke auch, null ergibt als Rückgabewert von getValue Sinn, wenn es das Feld nicht gibt, aber nicht für die jeweiligen Methoden.

@alxndr-w alxndr-w added this to the 5.1.0 Autoren-Automatik milestone Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants