Как переопределить метод класса WordPress Plugin - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть плагин, класс которого выглядит примерно так:

<?php

namespace myPro\EventCalendarPro;

use WP_Widget;

/**
 * Adds ECP_Widget widget.
 */

class ECP_Widget extends WP_Widget {

    public function widget () {

    }
}

?>

Теперь, как я могу переопределить метод виджета из моей темы функции. php файл?

1 Ответ

0 голосов
/ 20 февраля 2020

Простой ответ на этот вопрос: «Вы не можете сделать это».

Поскольку в PHP вы не можете переопределять классы, методы и функции. Но вы можете использовать расширение PHP Runkit для переопределения ваших методов

Функция Runkit для переопределение метод равен runkit_method_redefine

Пример кода

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

Но для начала вы должны установить расширение php-runkit на свой сервер.

Как установить Runkit

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