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

API getuned, neue Methoden findBy/queryBy #120

Merged
merged 1 commit into from
Nov 16, 2024
Merged

API getuned, neue Methoden findBy/queryBy #120

merged 1 commit into from
Nov 16, 2024

Conversation

christophboecker
Copy link
Member

@christophboecker christophboecker commented Sep 15, 2024

Im API der diversen Abfragemethoden bzw. Getter habe ich bei den Typen konsequent die "null" Option entfernt, der typ st m.E. nicht erforderlich, da anderweitig und damit durch einfachere Datentyp-Kombinationen ersetztbar. Beispiel: 0 als Indikator für "keine Einschränkung, suche alle", denn 0 ist ja eh keine vorkommende Datensatz-ID.

Getter liefern jetzt immer einen typadäquaten Wert. Auch als Beispiel: getName(): ?string ist ersetzt durch getName(): string. Null ist keine wirkliche Hilfe wenn man zusätzlich trotzdem auf `` abfragen müsste. Wer wissen will, ob das Feld belegt ist, kann ja immer noch 'hasValue' bemühen. Die Getter fragen nun erst hasValue ab und liefern erst dann den Wert und ansonsten '' bzw. `0`.

Zwei zusätzliche Methoden bei Entry:

queryBy ist eine Methode zum Bau einer Query mit den diversen Filtern, findBy dasselbe aber mit ausgeführtem find(). Die Parameter sind identisch.

public static function findBy(
    int|array|string $category = [], 
    int|array|bool $status = [], 
    string|int $lang = -1, 
    int|array|string $author = []
): rex_yform_manager_collection
  • Kategorie (string '1,2,3', int 1, array [1,2,3])
  • Status (int Entry::ONLINE, array [Entry::DRAFT,Entry::PLANNED, bool Entry::IS_ONLINE)
  • Sprache (string 'de', int 1)
  • Autor (int 1, array [1,2], string '1,2')

Leere Werte ([] bzw. -1) bedeuten: kein Filter. Bei der Sprche ist das -1, weil 0 die Bedeutung "für alle Sprachen" hat und eine Suche nach Sprache n immer eine Suche nach [0,n] ist.

Man könnte im nächsten Schritt die vorhandenen find-Methoden überprüfen und in Aufrufe von findBy ändern oder evtl auch ganz rauswerfen.

Und ein Changlog hinzugefügt

@alxndr-w alxndr-w merged commit 44da1fa into main Nov 16, 2024
1 check passed
@alxndr-w alxndr-w deleted the cb-18 branch November 16, 2024 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants