/**
  * 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);
 }