phpbar.de logo

Mailinglisten-Archive

[php] Dynamische Klassennamen

[php] Dynamische Klassennamen

Sorin Marti mas at semafor.ch
Die Mar 8 12:47:42 CET 2005


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