Görüntü işleme alanınızdaki işlemleri ifade etmek yeterli oluyor minimal dil düşünüyorum, PHP veya başka bir genel amaçlı dil açısından düşünmeyin. Kullanıcılar bu alanı özgü dil (DSL) ifadeleri göndermek, bu ifadeler sunucu tarafında ayrıştırıldı ve kod geçirilir.
Önemli şey, başlangıçta görüntü işleme operasyonlarının aralığında ve nasıl kombine edilebilir düşünmektir. Bu dil olması için ne ifade söyleyecektir. Eğer dışarı çalıştıktan sonra, dil sözdizimsel nasıl görüneceğini için bol seçenek vardır. Dilin sözdizimi, kullanım kolaylığı ve ayrıştırma kolaylığı arasında bir değiş tokuş bağlı olabilir.
Bu tür ifadeler için bir ayrıştırıcı yazmak ya da bulabilirsiniz, kullanıcılar için kolay olabilir. Aslında, herkes bu gibi durumlarda çalışacak varolan bir ifade değerlendirici (örneğin, Smarty güvenle kullanıcı gönderilen ifadeleri çalıştırabilirsiniz?), Ya da gerçekten PHP için bir ayrıştırıcı jeneratör tavsiye edebilir?
resize(rotate("foo.png", 90), 50)
: this kullanıcılar için daha az kolay olabilir, ama bu oldukça basit bir yığın makine kullanılarak işlenebilir gibi bir dil
"foo.png" 90 rotate 50 resize
Daha kolay, böyle bir XML tabanlı dil kendi ayrıştırıcı gerekmez:
<resize percent="50"><rotate degrees="90"><img src="foo.png"></rotate></resize>
Örneğin birisi bir zillion piksel bir görüntüyü yeniden boyutlandırmak ve tüm sunucu belleği kullanmak için yukarıdaki dili kullanabilir için DSL kullanıyorsanız, etki alanına özgü saldırılardan korumak değil. Yani herhangi bir kullanıcı tarafından gönderilen komut kullanabilirsiniz kaynakların miktarına sınırlar koyar DSL için çalışma zamanı ortamı bir çeşit olması gerekir.