Skip to content

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/Übersetzung

Anwendungsbeispiele

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')
);