* @license MIT */ class MagicClone extends MagicMethodGenerator { /** * Constructor */ public function __construct( ReflectionClass $originalClass, PropertyGenerator $initializerProperty, MethodGenerator $callInitializer ) { parent::__construct($originalClass, '__clone'); $this->setBody( '$this->' . $initializerProperty->getName() . ' && $this->' . $callInitializer->getName() . '(\'__clone\', array());' . ($originalClass->hasMethod('__clone') ? "\n\nparent::__clone();" : '') ); } }