Mailinglisten-Archive |
Ciao Sebastian, > 'eine'? Persistenzschicht?? welche dieser 3 Schichten bezeichnest du > denn als 'Persistenzschicht'? oder fasst du alle 3 Schichten zur > 'Persistenzschicht' zusammen? Datenzugriffsschicht, also eine Persistenzschicht. > wieso Braucht man dafür ein 'Persistenzes' Objekt? Du verstehst den Begriff (so glaub ich) falsch. Das Objekt das Du hast soll persistent gemacht werden (also gespeichert, damit wieder abrufbar --> ergo Datenbank o. Datei). Du brauchst nicht ein spezielles Objekt, sondern musst das bestehende in einer persistenten Form abbilden. > ich habe eine Klasse DbObject, diese beinhaltet alle Eigenschaften und > Methoden die ein Objekt welches in einer DB gespeichert wird, > beinhaltet. z. B.: id, name, last_change, date_created, load(), > save(), insert(), update(), getId(), setId(), getName(), ... > > Diese Klasse erweitere ich einfach z. B. Contact extends DbObject, > dabei erhält die Klasse halt weitere Eigenschaften ( street, city, > zip, ...) und eventuell weitere Methoden voilà! Da hast Du bereits einen Persistenz-Mechanismus. Wenn Objekte aber komplexer werden (über mehrere Tabellen zum Beispiel), musst du die Methoden load(), save(), insert(), update(), getId(), setId(), getName() überschreiben, oder aber du lässt sie dir generieren. Dann heisst es halt: Customer extends PersistentCustomer , wobei der PersistentCustomer die load(), save(), insert(), update()-Methoden übernimmt. > was bitte machst du nun anders (was sich bisher für mich nur > komplizierter anhört) und vor allem wo liegt bei dir der Vorteil? Der Vorteil liegt darin, dass Du bei grossen Projekten Millionen von Zeichen nicht selbst schreiben musst. Das funktioniert so: Du hast Du eine XML-Datei, die das mapping macht (die Klassenvariabeln zu Datenbankfeldern mappt; vereinfacht gesagt). Die Datenbank kann sich beliebig ändern, das Objekt kann sich beliebig ändern, alles was Du machst ist die XML-Datei anpassen, neu generieren -- Fertig! Grüsse Sorin PS: Ich wäre sehr an Deiner DbObject-Klasse interessiert. Gibt es da die Möglichkeit für einen Einblick?
php::bar PHP Wiki - Listenarchive