/** * Handles dynamically registered static method callbacks * * Static method callbacks registered through fORM::registerActiveRecordStaticMethod() * will be delegated via this method. Both this and fORM::registerActiveRecordStaticMethod * are available to PHP 5.3+ only. * * @throws fProgrammerException When the method cannot be found * @param string $method_name The name of the method called * @param array $parameters The parameters passed * @return mixed The value returned by the method called */ public static function __callStatic($method_name, $parameters) { $class = get_called_class(); self::forceConfigure($class); if (!isset(self::$static_callback_cache[$class][$method_name])) { if (!isset(self::$static_callback_cache[$class])) { self::$static_callback_cache[$class] = array(); } $callback = fORM::getActiveRecordStaticMethod($class, $method_name); self::$static_callback_cache[$class][$method_name] = $callback ? $callback : FALSE; } if ($callback = self::$static_callback_cache[$class][$method_name]) { return call_user_func_array($callback, array($class, $method_name, $parameters)); } // Error handler throw new fProgrammerException('Unknown static method, %s(), called', $method_name); }