Hallo,
ich habe eine Verständnisfrage bzw. würde gerne wissen, ob es eine "bessere" Lösung für mein Problem gibt. Ich habe eine Klasse, in der sich zwei Funktionen befinden, die jeweils E-Mails mit Swiftmailer versenden. Einzige Unterscheidung ist jeweils das einzulesende Template, die E-Mailadresse, an die die Mail geht und die Parameter, die ersetzt werden sollen:
Ich hatte vor, eine Wrapper-Klasse zu schreiben, um den wiederholenden Code noch weiter zu kapseln, weil sich die Zeilen an weiteren Stellen wieder und wieder gleichen würden. Meine Frage lautet einfach: ist mein Weg der richtige oder macht man das anders? Was habe ich für (bessere / schönere) Alternativen? Natürlich könnte ich da so lassen, aber ändere ich etwas an einer Stelle, muss ich alle anderen auch anpassen. Dem möchte ich bereits jetzt vorbeugen.
Ich hoffe der Code ist verständlich genug. Ich kann nicht alles hier reinkopieren.
Vielen Dank.
ich habe eine Verständnisfrage bzw. würde gerne wissen, ob es eine "bessere" Lösung für mein Problem gibt. Ich habe eine Klasse, in der sich zwei Funktionen befinden, die jeweils E-Mails mit Swiftmailer versenden. Einzige Unterscheidung ist jeweils das einzulesende Template, die E-Mailadresse, an die die Mail geht und die Parameter, die ersetzt werden sollen:
PHP:
class A
{
public function aAction()
{
$msg = file_get_contents('file.html');
$msg = str_replace(
'${name}',
), array(
$lastname,
), $msg);
// Send message
$transport = \Swift_MailTransport::newInstance();
$message = \Swift_Message::newInstance();
$message
->setSubject('Titel bzw. Betreff')
->setFrom(array(EMAIL_RETURN_PATH))
->setReturnPath(EMAIL_RETURN_PATH)
->setTo(array($email))
->setBody($msg, 'text/html');
// Send email
$mailer = \Swift_Mailer::newInstance($transport);
$mailer->send($message);
}
public function bAction()
{
$msg = file_get_contents('file2.html');
$msg = str_replace(
'${street}',
), array(
$street,
), $msg);
// Send message
$transport = \Swift_MailTransport::newInstance();
$message = \Swift_Message::newInstance();
$message
->setSubject('Titel bzw. Betreff')
->setFrom(array(EMAIL_RETURN_PATH))
->setReturnPath(EMAIL_RETURN_PATH)
->setTo(array($email))
->setBody($msg, 'text/html');
// Send email
$mailer = \Swift_Mailer::newInstance($transport);
$mailer->send($message);
}
}
Ich hatte vor, eine Wrapper-Klasse zu schreiben, um den wiederholenden Code noch weiter zu kapseln, weil sich die Zeilen an weiteren Stellen wieder und wieder gleichen würden. Meine Frage lautet einfach: ist mein Weg der richtige oder macht man das anders? Was habe ich für (bessere / schönere) Alternativen? Natürlich könnte ich da so lassen, aber ändere ich etwas an einer Stelle, muss ich alle anderen auch anpassen. Dem möchte ich bereits jetzt vorbeugen.
Ich hoffe der Code ist verständlich genug. Ich kann nicht alles hier reinkopieren.
Vielen Dank.