как передать запрос в родительский класс - PullRequest
0 голосов
/ 27 июня 2019

Я пишу плагин в Wordpress, который должен обрабатывать все остальные запросы API. В каждом запросе $token должен быть проанализирован, и я должен проверить в моей БД, это правильно или нет. У меня вопрос, я хочу обработать аутентификацию в родительском классе, я имею в виду, что у меня есть 2 класса. один authentication, а другой handler, который простирается от его родителя authentication. Например, если запрос /get/pictures/, я должен проверить в классе authentication, установлен ли токен, затем обработать его запрос, в противном случае верните false. как я могу сначала разобрать $request в родительском классе

  add_action('rest_api_init', function(){
        register_rest_route('myapi/v1', '/get/pictures/', array(
            'method' => 'GET',
            'callback' => array(new Handler(), 'get_pictures')
        ));
    });

  // in Authentication.php
    class Authentication {
       public function check_token_valid(){
         //check if token exist in the `$request`
       }
   }

 //in handler.php
  class Handler extends Authentication {
    public function get_pictures($request){
        // do some stuff
    }
 }

Ответы [ 2 ]

0 голосов
/ 27 июня 2019
// in Authentication.php
    class Authentication {
       public function check_token_valid( $request ){
         //check if token exist in the `$request`

       }
   }

 //in handler.php
  class Handler extends Authentication {
    public function get_pictures($request){
        // Validate it

        if( $this->check_token_valid( $request ) == false ) {
        {
            return false;
        }

        // perform actions

    }
 }

Эта ссылка может вам помочь:

https://wpshout.com/custom-register_rest_route-wordpress/

0 голосов
/ 27 июня 2019

Вы можете использовать как это

add_action('rest_api_init', function(){
            register_rest_route('myapi/v1', '/get/pictures/', 
               array(
                   'method' => 'GET',
                   'callback' => array(new Handler(), 'get_pictures'),
                 'permission_callback' => function() {
                    return current_user_can( 'edit_others_posts' );
                    }, 
            ));
        });




 //in handler.php
  class Handler extends Authentication {
    public function get_pictures($request){
        // do some stuff
    }
 }
...