2017-02-23 8 views
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と呼ばれることを学びました。

すべての答えは非常に古く、利用可能な新しいソリューションがある場合、私は願っています。

+0

'class :: extends()'を呼び出さない新しい子クラスにクラスを拡張して 'send'メソッドを追加できませんか?あなたのコードがベース 'MyMailer'をインスタンス化する必要がある場合は、動作しません。 – CD001

+0

@ CD001:多くの外部ライブラリがこのメソッドを使用していますので、拡張クラスを使用するよう編集することはできません。 – Purus

+0

いいえ、拡張クラスはあなたが何でもしたいと思っています。 – RiggsFolly

答えて

0

パッチワークライブラリはとても簡単で、いくつかの試行で動作させます。 Monekeyは、任意の内部および他の方法をパッチ

http://patchwork2.org/

  1. 使いやすいです。
関連する問題