Получите "PHP Fatal Error: Uncaught TypeError" в моем плагине Wordpress после перехода к PHP7.1 - PullRequest
0 голосов
/ 04 февраля 2019

Когда я пытаюсь установить новый сервер для своего экземпляра Wordpress и использовать плагин для платежей, я получаю сообщение об ошибке, при попытке создать функцию запуска возникает ошибка «PHP Fatal error: Uncaught TypeError» Может быть, потому что мыпереместите экземпляр PHP 5.6 на новый сервер с PHP 7.1.Мы получаем эту ошибку в нашем журнале Apache / PHP:

[Sat Feb 02 17:49:52.255570 2019] [php7:error] [pid 15655]
[client XXX.XX.XX.XXX:47110] PHP Fatal error:
Uncaught TypeError: Argument 1 passed to Moip\\Resource\\MoipResource::__construct()
must be an instance of Moip\\Moip, boolean given, 
called in /var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/src/Controller/Moip_Connects.php on line 109 and defined in 
/var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/vendor/moip/moip-sdk-php/src/Resource/MoipResource.php:56\nStack 
trace:\n#0 /var/www/xxxxxxxxx/www/wp-content/plugins/woo-moip-official/src/Controller/Moip_Connects.php(109): 
Moip\\Resource\\MoipResource->__construct(false)\n#1 /var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/src/Controller/Moip_Connects.php(85): 
Woocommerce\\Moip\\Controller\\Moip_Connects->set_token_notification()\n#2
/var/www/xxxxxxxx/www/wp-includes/class-wp-hook.php(286): Woocommerce\\Moip\\Controller\\Moip_Connects->authorize_api('')\n#3 /var/www/xxxxxxxx/www/wp-includes/class-wp-hook.php(310):
WP_Hook->apply_filters('', Array)\n#4 /var/www/xxxxxxxx/www/wp-
includes/plugin.php(453 in /var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/vendor/moip/moip-sdk-php/src/Resource/MoipResource.php on line 56

Строка 109 в Moip_Connects.php - это $ webhook = new Webhook ($ this-> moip_sdk-> moip);в коде:

public function set_token_notification()
{
    try {
        $webhook  = new Webhook( $this->moip_sdk->moip );
        $response = $webhook->create();

        if ( $response->token ) {
            $this->setting->set( 'webhook_token', $response->token );
            $this->setting->set( 'webhook_id', $response->id );
        }

        unset( $webhook );

    } catch( Exception $e ) {
        error_log( $e->__toString() );
    }

}

И строка 56 является публичной функцией __construct (Moip $ moip) в коде:

/*Create a new instance.
*
* @param \Moip\Moip $moip
*/
public function __construct(Moip $moip)
{
    $this->moip = $moip;
    $this->data = new stdClass();
    $this->initialize();
}

Как мы можем решить эту проблему для PHP 7.1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...