0

私は他の開発者によって開発されたスクリプトに取り組んでいます。電子メールを送信するアラートシステムがあり、各モジュールには独自のアラートファイルとそのア​​ラートファイルrequire_oncePHPMailerがあります

<?php
    // assume this is 1.php
    //.......... some code above //
    $mail_title = 'Message Title';
    $mail_body = 'Message body with complete details what has been done here';    
    require_once 'module_alert.php'; // <- PHP Mailer is requir_once in this file
    //........... ajax and some response //
?>

私がrequire_onceするとすぐに、それは電子メールを生成し、それをディスパッチします。

次に、モジュール内のPHPページを更新する必要があります。そのページは、モジュールの3つの異なるphpページにデータを投稿する必要があります。そのページがデータを1つのphpページVIAajaxにのみ送信し、他の2つのページが最初の1つの自動インクリメントIDを使用する前。

複雑さのため、他の2つのファイルもファイル1に含めることを考えています。

<?php
    // assume this is 1.php
    //.......... some code above //
    $mail_title = 'Message Title';
    $mail_body = 'Message body with complete details what has been done here';    
    require_once 'module_alert.php'; // <- PHP Mailer is requir_once in this file
    //........... ajax and some response //
    if($condition){
        include '2.php'; // <- this file again require_once 'module_alert.php'
        include '3.php'; // <- this file again require_once 'module_alert.php'
    }
?>

問題は、3つのステップすべてについてアラートを送信したいということです。また、スクリプトを壊す可能性があるため、他のファイルの多くのコードを変更したくないということです。

この状態で生き残るための私のオプションは何ですか?

編集

module_alerts.phpにはたくさんのことがあります。メールのレイアウト、テーブルの画像、条件付きの受信者、このモジュールのアラートを受け取る必要がある人など。$ mail-> send()関数を使用して、特定の受信者にメールを送信します。

4

1 に答える 1

2

電子メールをディスパッチするロジックは、プログラムの任意の時点で、適切なパラメーターを使用して呼び出すことができる関数にラップする必要があります。例えば:

function sendMyEmail($recipient, $subject, $message)
{ ... }

もちろん、クラス、一連の関数、実際にはあらゆる種類の正当な再利用可能な機能を構築することもできます。これにより、現在および将来の問題が軽減されます。

HTH

于 2013-02-05T13:28:55.933 に答える