public function __call($name, $arguments) { $find = false; foreach ($this->extends as $extend) { if (method_exists($extend, $name)) { $find = true; return call_user_func_array(array($extend, $name), $arguments); } } if ($find === false) { return parent::__callStatic($name, $arguments); throw new BadMethodCallException("Method " . $name . " not found in " . __CLASS__); } }