public function create($name)
    {
        if (isset(static::$componentMap[strtoupper($name)])) {
            return call_user_func_array([$this, 'createComponent'], func_get_args());
        } else {
            return call_user_func_array([$this, 'createProperty'], func_get_args());
        }
    }
public function create($name)
    {
        if (isset(static::$componentMap[strtoupper($name)])) {
            return call_user_func_array([$this, 'createComponent'], func_get_args());
        } else {
            return call_user_func_array([$this, 'createProperty'], func_get_args());
        }
    }
public function create ( $ name ) { if ( isset ( static :: $ componentMap [ strtoupper ( $ name ) ] ) ) { return call_user_func_array ( [ $ this , 'createComponent' ] , func_get_args ( ) ) ; } else { return call_user_func_array ( [ $ this , 'createProperty' ] , func_get_args ( ) ) ; } }
Creates a new component or property.

If it's a known component, we will automatically call createComponent.
otherwise, we'll assume it's a property and call createProperty instead.

@param string $name
@param string $arg1,... Unlimited number of args

@return mixed
Creates a new component or property .