SimpleORMap: Am Model definierte Objekteigenschaften werden beim Klonen ignoriert
Szenario:
Man hat ein Model, das ein Objekt an einer Property definiert hat. Klont man dieses Model nun, so behält der Klon eine Referenz auf eben jenes Objekt. Dies kann zu ungewollten Situationen führen, wenn dieses Objekt beispielsweise im after_initalize
-Callback gesetzt wird und eine Methode von SORM aufgerufen wird, die die Objekte mittels PDO::FETCH_INTO
lädt. Man erhält dann eine Menge von Objekten des Models, die alle das gleiche Objekt in der Eigenschaft referenzieren.
Auch wenn dies vielleicht nicht die gewünschte Art und Weise ist, SORM zu nutzen, sollten wir diesen Fall abfangen. Dies ist recht trivial, da lediglich alle definierten Eigenschaften am Objekt geprüft werden müssen, ob sie wiederum ein Objekt enthalten und dieses dann auch klonen.