ugrás a tartalomhoz

Propel kérdés

whiteman0524 · 2010. Aug. 3. (K), 17.46
Sziasztok !

A Symfony kapcsán ismerkedtem meg a Propel-el és nagyon tetszik, de van egy dolog amit nem értek. A példa kedvért a User táblám egy sorát a User osztály fogja reprezentálni.

Na most a User osztály konstruktorát felül lehet írni, a saját igényeim szerint. A példa kedvéért felülírom úgy, hogy inicializálja az új user objektum nevét mondjuk Bélára automatikusan. Mást nem fog csinálni, csak ennyit, tehát meghívja a parent::__construct()-ot, és beállítja a nevet Bélára. Ez azt eredményezi, hogy mindig amikor létrehozok egy új User objektumot, akkor annak alapértelmezetten Béla lesz a neve. Na most a UserPeer meg ugye User objektumokkal tér vissza, tehát User objektumokat példányosít valahogy, de úgy hogy nem fut le az általam definiált konstruktor ! Ez nagyon szuper, mert pont jól is jön, csak meg szeretném érteni hogy hogyan adja vissza a UserPeer osztály a User objektumokat úgy, hogy nem hívódik meg a User osztályban definiált konstruktorom.

Remélem elég érhetően fogalmaztam, de ha nem világis szóljatok és megpróbálom érthetőbben :)

A választ előre is kösz.
 
1

Prototype

Ifju · 2010. Aug. 4. (Sze), 15.30
A következő módon lehet megkerülni a konstruktort:

function buildByPrototype($name)
{
  $obj = unserialize(sprintf('O:%d:"%s":0:{}', strlen($name), $name));
  return $obj;
}
Keress rá a propel kódjában az unserialize-ra, és biztosan meg fogod találni.
2

Valóban

whiteman0524 · 2010. Aug. 4. (Sze), 21.39
Köszönöm szépen a segítséget. Ezt eddig nem tudtam, de most okosabb lettem :) Így már világos a rendszer működése :)