/** * @param array $arguments * @return self */ public function __new($arguments = []) { $return = new self(); $return->base = $this->base; $return->family = $this->family; $return->parent = $this->parent; foreach ($arguments as $key => $value) { $return->{$key} = $value; } $return->__configure($arguments); $return->__initialise($arguments); return $return; }