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。
Redefine Class Methods or Class
monkey patching in php
所有的答案都是很老的,如果有任何新的解决方案,我希望。
Patchwork 库非常简单,我尝试了几次就成功了。
- Monekey 修补任何内部和其他方法。
- 易于使用。
我在第 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。
Redefine Class Methods or Class
monkey patching in php
所有的答案都是很老的,如果有任何新的解决方案,我希望。
Patchwork 库非常简单,我尝试了几次就成功了。
- Monekey 修补任何内部和其他方法。
- 易于使用。