PHP 第 3 方的 Monkey 补丁 类

PHP Monkey Patching for 3rd party classes

我在第 3 方库中有以下 class,我不应该修改它。

<?php

class MyMailer {
    public function send() {
        $mail = new PHPMailer();

        $mail->setFrom('from@example.com', 'Your Name');
        $mail->addAddress('myfriend@example.net', '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() 方法,或者如何用我自己的新 class 覆盖整个 class MyMailer?

下面的link建议使用runKit,默认情况下不与PHP绑定。所以不能保证它在我的所有服务器中都可用。我了解到这种方法称为 Monkey Patching。

所有的答案都是很老的,如果有任何新的解决方案,我希望。

Patchwork 库非常简单,我尝试了几次就成功了。

http://patchwork2.org/

  1. Monekey 修补任何内部和其他方法。
  2. 易于使用。