Yani bir e-posta sürü ve içindeki değişken yerine sahip bir sistem kuruyorum, bu yüzden veritabanında saklanan şablonları için bazı değişken değiştirme yönetmek için bir sınıf yazıyorum.
Burada kısa bir örnek:
// template is stored in db, so that's how this would get loaded in
$template = "Hello, %customer_name%, thank you for contacting %website_name%";
// The array of replacements is built manually and passed to the class
// with actual values being called from db
$replacements = array('%customer_name%'=>'Bob', '%website_name%'=>'Acme');
$rendered = str_replace(array_keys($replacements), $replacements, $template);
Şimdi, bu tek var değiştirmeleri, temel şeyler için iyi ve güzel çalışıyor. Ancak, döngü için olması gereken bazı yerler vardır, ve bunu uygulamak için nasıl kaybettim.
Fikir böyle bir şablon var olurdum:
"hello, %customer_name%, thank you for requesting information on {products}"
Nerede, {} ürünleri gibi bir biçim ile istenen ürünler için üzerinde döngüye şablonuna geçirilen bir dizi, olacaktır:
Our product %product_name% has a cost of %product_price%. Learn more at %product_url%.
Yani bu bir örnek hale sürümü olacaktır:
"hello, bob, thank you for requesting information on:
Our product WidgetA has a cost of $1. Learn more at example/A
Our product WidgetB has a cost of $2. Learn more at example/B
Our product WidgetC has a cost of $3. Learn more at example/C.
Bunu gerçekleştirmek için en iyi yolu nedir?