Я пытаюсь реализовать API-интерфейс плагина в продукте на основе PHP, над которым я работаю. Я создал класс, который наследуется от PHP PDO-класса, а затем добавил некоторые дополнительные методы. Проблема в том, что я хочу перехватывать такие вещи как .query(), .exec(), .execute() и .fetchAll() PDO в API-интерфейсе плагина, обрабатывая аргументы, переданные/из этих методов. Я попытался использовать метод перехватчика __call ($ method, $ args), но в этом случае он не будет работать, потому что я не могу пометить методы PDO как защищенные.Как перехватить вызовы PDO?
Как создать класс, который наследуется от PDO, а затем перехватить методы класса PDO до их отправки родительскому классу? Цель состоит в том, чтобы перехватить аргументы, переданные/из этих методов, чтобы мой API-интерфейс плагина работал. Это недостающая часть, которую у меня нет в моем API-интерфейсе плагина для продукта, над которым я работаю.
Это то, что я в конечном итоге делает. Мне также приходилось делать причудливые вещи, потому что PDO создает объект утверждения с помощью методов класса против этого. Таким образом, мне пришлось создать класс PDOStatementStub, который также делает что-то подобное выше. Затем я использовал __call() для перехвата и запуска этого с помощью методов класса private handle. – Volomike