flight\core\Dispatcher::invokeMethod PHP Method

invokeMethod() public static method

Invokes a method.
public static invokeMethod ( mixed $func, array &$params = [] ) : mixed
$func mixed Class method
$params array Class method parameters
return mixed Function results
    public static function invokeMethod($func, array &$params = array())
    {
        list($class, $method) = $func;
        $instance = is_object($class);
        switch (count($params)) {
            case 0:
                return $instance ? $class->{$method}() : $class::$method();
            case 1:
                return $instance ? $class->{$method}($params[0]) : $class::$method($params[0]);
            case 2:
                return $instance ? $class->{$method}($params[0], $params[1]) : $class::$method($params[0], $params[1]);
            case 3:
                return $instance ? $class->{$method}($params[0], $params[1], $params[2]) : $class::$method($params[0], $params[1], $params[2]);
            case 4:
                return $instance ? $class->{$method}($params[0], $params[1], $params[2], $params[3]) : $class::$method($params[0], $params[1], $params[2], $params[3]);
            case 5:
                return $instance ? $class->{$method}($params[0], $params[1], $params[2], $params[3], $params[4]) : $class::$method($params[0], $params[1], $params[2], $params[3], $params[4]);
            default:
                return call_user_func_array($func, $params);
        }
    }

Usage Example

Example #1
0
 /**
  * Handles calls to static methods.
  *
  * @param string $name Method name
  * @param array $params Method parameters
  * @return mixed Callback results
  */
 public static function __callStatic($name, $params)
 {
     static $initialized = false;
     if (!$initialized) {
         require_once __DIR__ . '/autoload.php';
         self::$engine = new \flight\Engine();
         $initialized = true;
     }
     return \flight\core\Dispatcher::invokeMethod(array(self::$engine, $name), $params);
 }
All Usage Examples Of flight\core\Dispatcher::invokeMethod