У меня есть класс ниже в сторонней библиотеке, которую я не должен изменять.
<?php
class MyMailer {
public function send() {
$mail = new PHPMailer();
$mail->setFrom('[email protected]', 'Your Name');
$mail->addAddress('[email protected]', 'My Friend');
$mail->Subject = 'First PHPMailer Message';
$mail->Body = 'Hi! This is my first e-mail sent through PHPMailer.';
$mail->Send();
}
public function check(){
//code
}
}
Как я могу переопределить или перехватить метод send() или как я могу переопределить весь класс MyMailer своим собственным новым классом?
Ссылка ниже предлагает использовать runKit, который по умолчанию не связан с PHP. Так что нет никакой гарантии, что все это доступно на всех моих серверах. Я узнал, что этот подход называется Monkey Patching.
Все ответы очень старые, и мне хотелось бы, чтобы было доступно какое-либо новое решение.
send
в новый дочерний класс, который не вызываетparent::send()
? Это не сработает, если ваш код требует создания экземпляра базыMyMailer
, хотя... - person CD001   schedule 23.02.2017