2.1.3 Model Extensions
In ähnlicher weise arbeiten Behaviors als der Weg gemeinsame Funktionalitäten zwischen den Modellen hinzuzufügen. Wenn du zum Beispiel Nutzerdaten in einer Baumstruktur speicherst, kannst du das Verhalten deines Nutzer-Modell wie ein Baum definieren und freie Funktionalitäten für das Entfernen, Einfügen und Verlagerung der Knoten in deiner zugrundeliegenden Baumstruktur hinzufügen.
Modelle werden auch von einer anderen Klasse genannt DataSource verwendet. DataSources sind Abstraktionen, die es Modellen ermöglichen, verschiedene Arten von Daten konsistent zu verändern. Während die Hauptquelle der Daten in einer CakePHP Anwendung oft eine Datenbank ist, könntest du auch weitere DataSources schreiben, die es deinen Modellen ermöglichen RSS feeds, CSV files, LDAP entries, oder iCal events darzustellen. DataSources erlaubt es dir aus verschiedenen Quellen Datensätze zu assoziieren: anstatt auf SQL-Joins beschränkt zu sein, ermöglichen es dir die DataSources festzulegen, daß dein LDAP model mit vielen iCal events verbunden ist.
Genau wie bei den Kontrollern, sind Modelle mit Call-Back Funktionalitäten ausgestattet:
- beforeFind()
- afterFind()
- beforeValidate()
- beforeSave()
- afterSave()
- beforeDelete()
- afterDelete()
Die Namen dieser Methoden sollte beschreibend genug sein, um zu wissen, was sie tun. Die weiteren Details werden im Kapitel über die Modelle behandelt.
