Az elso nem hiszem, hogy jo lenne (most nem tudom melyik principle, de nem tunik helyesnek).
A masodik mar jobban nez ki.
Harmadik eseten static method call van, az Javaban bad practice (nehez mockolni), de ez PHP, szoval nem tudom.
Mi lenne, ha a static helyett egy factory-d lenne?
$newObject = MyClass::createObject($oldObject);
?
Ez utobbi jobban olvashato, rogton latszik, hogy mi az uj object, nincs kimeneti parameter, ami jo, stb.