LatinLemma und LatinLemmaCollection
Übersicht
Die Klassen LatinLemma und LatinLemmaCollection sind Data Transfer Objects (DTOs), die für die Handhabung lateinischer Lemmata aller Wortarten in der Hermeneus-Anwendung entwickelt wurden.
Zweck & Anwendungsgebiete
- Einheitliche Darstellung lateinischer Vokabeln bzw. Abstraktion der spezifischen Implementierungsdetails verschiedener Wortarten
- Kann sowohl aus einem Lemma, das in der Datenbank existiert, als auch aus einem Lemma, das nur temporär existiert (z.B. manuell eingegebene Lemmata) konstruiert werden
- Kapselt wesentliche Lemma-Informationen (ID, Lemma, Wortart, zusätzliche Informationen, Bedeutung)
- Bietet Konvertierungsmethoden zwischen Vocab-Modellen (Adjektiv, Nomen, Verb etc.) und LatinLemma-Objekten
- Datenaustausch zwischen Backend und Frontend (z.B. bei Übungserstellung) oder API-Endpoints
LatinLemma
Eigenschaften
php
private ?int $id; // Datenbank-ID (null für Ad-hoc-Lemmata)
private string $lemma; // Die Lemmaform
private string $pos; // Wortart/Part of Speech: adjektiv, eigenname, nomen, numerale, partikel, pronomen, verb, wendung
private ?string $info; // Zusätzliche grammatikalische Informationen
private string $sense; // Bedeutung/ÜbersetzungAnwendungsbeispiele
php
// Erstellung aus bestehendem Vocab-Modell
$nomenModel = Nomen::find(1);
$lemma = (new LatinLemma())->fromVocab($nomenModel);
// Erstellung eines Ad-hoc-Lemmas
$adhocLemma = (new LatinLemma())->fromAdHoc(
lemma: 'favere',
pos: 'verb',
info: 'm. Dativ',
sense: 'gewogen sein'
);LatinLemmaCollection
Zweck
LatinLemmaCollection erweitert Laravels Collection-Klasse, um eine spezialisierte Handhabung von LatinLemma-Objekten zu ermöglichen. Dies ist besonders nützlich bei der Arbeit mit Gruppen von Vokabeln, wie in Vokabellisten oder Lektionsinhalten.
Hauptmerkmale
- Typsichere Collection für LatinLemma-Objekte
- Konvertierungsmethoden aus verschiedenen vokabelbezogenen Collections
- Spezialisierte Filter- und Suchfunktionen
Anwendungsbeispiele
php
// Erstellung aus Vokabelsammlung
$vocabCollection = Verb::where('lemma', 'occidere')->get(); // 2 Ergebnisse
$lemmaCollection = (new LatinLemmaCollection())->fromVocabCollection($vocabCollection);
// Hinzufügen eines ad-hoc-Lemmas, das nicht im Glossarium existiert und daher keine ID hat
$lemmaCollection->addLemma(
(new LatinLemma())->fromAdHoc('computrator', 'nomen', ', -is ', 'der Computer')
);