![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 30.10.2005
Beiträge: 274
|
Morgen Miteinander.
Ich benutze PDO. Ich selektiere meine Daten und fetche dann alles in ein neues Objekt mit PDO :: FETCH_CLASS (Newspost ResultSet in ein Newspost Object, etc.) Jetzt ist es aber so das PDO einfach hingeht und verpasst meinem Objekt die gefetchten Daten als Public Variablen, was ich nicht will. Auf einem anderen Server (muss) ich MDB2 nehmen. Hiermit mache ich das ähnlich (MDB2_FETCHMODE_OBJECT) und alle Werte aus dem ResultSet sind als Parameter im Objekt Konstruktor verfügbar. Im Konstruktor weise ich dann die selektierten Daten meinem Objekt zu wie ich es will beispielsweise, alle private oder stringmäßig manipuliert. Also kann PDO die Daten genauso fetchen wie MDB2 EDIT: Oh ich seh grade bei dem PDO Fetch kann man die Klassenvariablen auf private stellen und PDO füllt sie trotzdem Geändert von ex³ (17.02.2007 um 09:32 Uhr). |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 789
|
Wird denn __set() angesprochen, wenn die Attribute privat sind? Falls ja, kannst du dir ja eine Basis-Klasse bauen, die bei __set() nach einer Methode sucht, die die Werte bei der Eingabe umschreibt und bei __get() nach einer, die die Werte eben vor der Ausgabe umschreibt, oder ev. auch eine Exception wirft, wenn keine Methode, wie getName(), getsize() etc. existiert.
Andernfalls halt einen Decorator bauen, dem du das Daten-Objekt einpflanzt (ist das dann noch ein Dekorierer, wenn öffentliche Attribute versteckt werden?). Basti PS: Nein, Dekorierer verändern die Schnittstelle nicht. Dann eben ein Adapter… Geändert von Basti (17.02.2007 um 11:30 Uhr). |
|
|
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 30.10.2005
Beiträge: 274
|
Ich hab die Attribute meiner Klasse mal auf private gestellt. PDO füllt meine Klassenvariablen weiterhin.
Aber mal einer andere Frage. Wie macht das PDO? Wie erstellt PDO ein Objekt meiner Klasse und füllt dabei die private Variablen. Schließlich sind die ja private und der Konstruktor macht garnichts. |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 789
|
Ah, ich dachte, du willst die Daten beim "Reinkopieren" ins Objekt noch manipulieren.
Und, wie PDO das macht? Keine Ahnung, schau doch mal in den Quellcode. Du kannst sowas aber ach mit PHP "hintricksen": PHP-Code:
Code:
object(Foo)[2] private 'iTest' => 9 Grad beim Rumprobieren auf ein sehr suspektes Verhalten gestoßen: PHP-Code:
Code:
object(Foo)[1] private 'iTest' => 1 public 'iTest' => 42 false object(Foo)[2] private 'iTest' => 1 public '.....' => 42 (Version 5.2.0) Basti Geändert von Basti (17.02.2007 um 17:36 Uhr). |
|
|
|
|
|
Nach oben #5 | |
|
Erfahrener Benutzer
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
|
Zitat:
|
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PDO vs MDB2 | ex³ | PEAR, PECL und Frameworks | 1 | 30.07.2007 12:47 |
| Class 'xyz' not found in, Probleme mit dem include_path? | Ben | PHP-Programmierung | 5 | 02.06.2006 16:44 |
| SQLSTATE - Wie kommt PDO da dran? | Lars | Datenbanken | 6 | 30.01.2006 14:20 |
| NOOB FRAGE: Fenster bei Buttondruck | Muluf | Allgemeine Java-Programmierung | 2 | 21.06.2005 15:06 |