Model-Klasse
Aus ZCMS-Dev-Wiki
Datei: model.class.php
Ort: /cms.inc/klassen/
Die Model-Klasse dient der kompletten Datenverwaltung, hier befinden sich Modelle sowie Schnittstellen!
Egal ob Daten in eine Datenbank geschrieben werden muessen oder Dateien hochgeladen werden muessen bis hin zum Ordner erstellen, XML-Daten erstellen oder manipulieren oder sonstiges in der Richtung.
Die Grundidee dahinter ist folgende. Ist das CMS einmal fertig und läuft alles ueber die Modelklasse oder besser deren Interfaces, so ist es später mal leichter möglich das CMS fuer andere Datenbanken (zb Oracle,SQLlite,...) umzuschreiben. Dazu braucht man prinzipiell dann nur die Modelklasse und deren Interface abzuändern. Module haben ebenfalls die Möglichkeit Modelle/Interface zu schreiben.
siehe dazu model::modul( $_MOD_DIR_NAME , $inc_file_privat , $_PARAMS = array() ).
Informationswege
Controller > schnittstelle > model (der Controller schickt einen Request zur Schnittstelle und diese nutzt die Modelle um die Daten zu besorgen)
model > schnittstelle > Controller (Daraufhin schicken ein oder mehrere Modelle die Daten ueber die Schnittstelle zurueck zum Controller)
Definition Schnittstelle:
Eine Schnittstelle darf keinerlei MySQL-Syntax als Eingabewert erhalten koennen.
Eine Schnittstelle darf direkt im Controller/Modul verwendet werden. (public)
Eine Schnittstelle darf Model-Methoden ansprechen
Definition Model:
Ein Model darf MySQL-Syntax als Eingabewert erhalten koennen.
Ein Model darf NICHT direkt im Controller/Modul verwendet werden. (privat)
Ein Model brauch meist keine Schnittstellen-Methoden anzusprechen da Schnittstellen auch nur aus Modellen bestehen.
