public function __call($method_name, $arguments) { $ret = false; if (Observer::get_instance()->call_back(get_class($this), 'before_' . $method_name)) { $ret = call_user_func_array(array($this, '_' . $method_name), $arguments); } Observer::get_instance()->call_back(get_class($this), 'on_' . $method_name); return $ret; }