为什么最小参数受到保护?

时间:2012-10-21 作者:Eric Pauley

为什么是$wp_xmlrpc_server->minimum_args 是否受保护?这似乎是一种实用的方法$wp_xmlrpc_server->login. 是否有其他方法来清理输入的长度,或者我必须编写自己的方法?

1 个回复
SO网友:chrisguitarguy

您可以完全交换掉运行xmlrpc服务器的类。所以创建一个子类wp_xmlrpc_server, 将其用于xmlrpc服务器类,并使用您喜欢的所有受保护方法。

示例(未测试,小心使用):

<?php
class WPSE69959_XMLRPC_Sever extends wp_xmlrpc_server
{
    // override the constructor to add your own methods.
    public function __construct()
    {
        add_filter(\'xmlrpc_methods\', array(__CLASS__, \'_add_methods\'));
        // call the parent constructor to set up the other methods
        parent::__construct();
    }

    public static function _add_methods($methods)
    {
        $methods[\'say_hello_two\'] = \'this:say_hello_two\';
        return $methods;
    }

    public function say_hello_two($args)
    {
        // do stuff with protected methods here!
    }
}

// swap out the classes
add_filter(\'wp_xmlrpc_server_class\', \'wpse69959_swap_class\');
function wpse69959_swap_class($cls)
{
    return \'WPSE69959_XMLRPC_Sever\';
}
要回答您的问题,它是受保护的,因为它是一个内部方法。没有理由让外面的人wp_xmlrpc_server 类来使用该方法,因此没有理由将其公开。此外,如果它被不受信任的源使用,那么它的实现方式可能会导致意外的副作用(例如设置/发送错误),例如wp_xmlrpc_server

结束