Почему минимальная защита защищена?

Почему $wp_xmlrpc_server->minimum_args ? Похоже, что такой метод $wp_xmlrpc_server->login как $wp_xmlrpc_server->login . Есть ли другой способ дезинфекции входов для длины или мне нужно написать собственный метод?

Solutions Collecting From Web of "Почему минимальная защита защищена?"

Вы можете полностью заменить класс, на котором запущен сервер 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 .