WPLib::__callStatic PHP Method

__callStatic() static public method

static public __callStatic ( string $method, array $args ) : mixed
$method string
$args array
return mixed
    static function __callStatic($method, $args)
    {
        return self::_call_helper(get_called_class(), $method, $args);
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Delegate calls to an instance class if the class has a INSTANCE_CLASS constant or plural name adds 's', otherwise delegate to WPLib.
  *
  * @param string $method_name
  * @param array $args
  *
  * @return mixed
  */
 static function __callStatic($method_name, $args)
 {
     /**
      * Get the instance class for this module
      */
     if ($instance_class = static::instance_class()) {
         /**
          * Whichever we have, INSTANCE_CLASS or singular, see if their is such a method.
          */
         if (!is_callable(array($instance_class, $method_name))) {
             /**
              * Whichever we have, INSTANCE_CLASS or singular, see if their is such a method.
              * If no, delegate to parent
              */
             $instance_class = null;
         } else {
             /**
              * Whichever we have, INSTANCE_CLASS or singular, see if their is such a method.
              * If yes verify it is a static method.
              */
             $reflector = new ReflectionMethod($instance_class, $method_name);
             if (!$reflector->isStatic()) {
                 $instance_class = null;
             }
         }
     }
     if ($instance_class) {
         /**
          * Whichever we have, INSTANCE_CLASS or singular with existing method name, call it.
          */
         $value = call_user_func_array(array($instance_class, $method_name), $args);
     } else {
         /**
          * No method, delegate to parent.
          */
         $value = parent::__callStatic($method_name, $args);
     }
     return $value;
 }