Argh, ben nu twee dagen bezig geweest een object anders op te bouwen. Eerst werd in de constructor alle data (die eigenlijk statisch is, maar per implementatie van het pakket wel verschilt) uit verschillende database tabellen gehaald. Nu werkt het door het object te serializen / unserializen.
Vandaag ging ik dan een subclass maken en loop ik tegen een gemeen probleem aan. Ik gebruik PHP4 maar ik denk dat ik met PHP5 hetzelfde probleem zou krijgen. Als ik in de subclass de constructor van de parent aanroep (dmv parent::ClassName), krijg ik een object van de parent class terug, niet van de subclass.
Een voorbeeld:
Uiteraard zijn alle strings in de database geserializde Super objecten, maar dat hadden jullie natuurlijk wel door!
Weet iemand een manier (of een goede hack) om dit alsnog voor elkaar te krijgen?
// edit:
Ik heb al een manier gevonden, maar erg netjes is die niet:
Weet iemand een betere manier?
Vandaag ging ik dan een subclass maken en loop ik tegen een gemeen probleem aan. Ik gebruik PHP4 maar ik denk dat ik met PHP5 hetzelfde probleem zou krijgen. Als ik in de subclass de constructor van de parent aanroep (dmv parent::ClassName), krijg ik een object van de parent class terug, niet van de subclass.
Een voorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| class Super { function Super () { $this = unserialize( getStringFromDB() ); // haal een string uit db en unserialize object } } class Sub extends Super { function Sub () { parent::Super(); } } echo get_type( new Sub ); // geeft Super, niet Sub |
Uiteraard zijn alle strings in de database geserializde Super objecten, maar dat hadden jullie natuurlijk wel door!
Weet iemand een manier (of een goede hack) om dit alsnog voor elkaar te krijgen?
// edit:
Ik heb al een manier gevonden, maar erg netjes is die niet:
PHP:
Nu maak ik dus een temp object aan en kopieer ik alle variabelen. 1
2
3
4
5
6
| class Super { function Super () { $tmp = unserialize( getStringFromDB() ); $this->variable = $tmp->variable; } } |

Weet iemand een betere manier?
[ Voor 15% gewijzigd door JayVee op 27-07-2006 13:06 ]
ASCII stupid question, get a stupid ANSI!