Senaryo: Veritabanından bir e-posta şablonu getirin ve her biri için e-postayı kişiselleştirerek alıcıların bir listesini kullanın.PHP derin klon nesnesi
E-posta şablonum yuvalanmış bir nesne olarak döndürülüyor. Biraz şöyle görünebilir: Alıcıların aracılığıyla
Sonraobject(stdClass) {
["title"] => "Event Notification"
["sender"] => "[email protected]"
["content"] => object(stdClass) {
["salutation"] => "Dear %%firstname%%,"
["body"] => "Lorem ipsum %%recipient_email%% etc etc..."
}
}
ben döngü, bir kişiselleştirmek için bu $ eposta nesnesini geçirerek() fonksiyonu:
foreach($recipients as $recipient){
$email_body = personalise($email, $recipient);
//send_email();
}
mesele, tabii ki, yani ben Kişiselleştirme etiketlerini değiştirmesi için $ email nesnesini referans olarak iletmesi gerekir - ancak bunu yaparsam, orijinal nesne değiştirilir ve artık kişiselleştirme etiketleri içermez.
Anladığım gibi, klon burada bana yardımcı olmayacaktır, çünkü yalnızca sığ bir kopya oluşturacaktır: e-posta nesnesindeki içerik nesnesi klonlanmayacaktır.
Bunu unserialize (serialize ($ obj)) ile halletmeyi okudum - ama okuduğum her şey bunun büyük bir performans hit olduğunu söylüyor.
Yani, iki nihayet benim iki sorulara olsun:
- unserialize (serialize ($ obj)) makul bir çözüm burada mı? Yoksa bu şeyleri yanlış mı anlatabilirim? 'un bu e-posta nesnesinin kişiselleştirilmiş kopyalarını üretebilmesinin farklı bir yolu var mı?
Ben swiftmailer dekoratör eklentisi (http://swiftmailer.org/docs/plugins.html#decorator-plugin) ile yapmaya çalıştığınız şeyi yapmaya büyük bir iş yapar, artı iyi bir iş yapar başlıkları; onunla çok düşük spam sonuçları alıyoruz. – scott