getDelegate(), $method)) { return call_user_func_array([$this->getDelegate(), $method], $parameters); } array_unshift($parameters, $this); return $this->__callMacro($method, $parameters); } /** * @return object */ abstract public function getDelegate(); }