0
私は以下のクラスを私が変更するはずのサードパーティのライブラリに入れました。サードパーティのクラスのためのPHP Monkeyのパッチ適用
<?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
}
}
私は
送信を上書きするか、フックすることができますどのように
()メソッドまたはどのように私は自分の新しいクラスで、クラス全体のMyMailerをオーバーライドすることができますか?
以下のリンクは、デフォルトでPHPにバンドルされていないrunKitを使用することを示しています。したがって、私のすべてのサーバーですべてが利用できるという保証はありません。私はこのアプローチがMonkey Patchingと呼ばれることを学びました。
すべての答えは非常に古く、利用可能な新しいソリューションがある場合、私は願っています。
'class :: extends()'を呼び出さない新しい子クラスにクラスを拡張して 'send'メソッドを追加できませんか?あなたのコードがベース 'MyMailer'をインスタンス化する必要がある場合は、動作しません。 – CD001
@ CD001:多くの外部ライブラリがこのメソッドを使用していますので、拡張クラスを使用するよう編集することはできません。 – Purus
いいえ、拡張クラスはあなたが何でもしたいと思っています。 – RiggsFolly