Smarty Template Engine
Uzun yıllardır profesyonel web uygulamarında kullanılan ve her geçen gün önemi ve etkinliği anlaşılan şablon motorları günümüz web teknolojilerinde MVC (Model View Controller) mimarisinin önemli bir parçasını oluşturmaktadır. İntranette çalışan bir çok web uygulamalarının tercih ettiği Smarty artık internette çalışan bir çok uygulamanın temel taşlarından biri olmuştur. “Niçin Smarty kullanacağız?” sorusunun ardını dolduramayan yazılımcılar için düşüncelerimi klavyeye almak istedim…
Smarty’nin temel amacı uygulamaların kodları ile sunum tarafını birbirinden ayırmaktır. Bu çerçevede, uygulama kodları uygulamanın iş mantığını oluşturan ve PHP ile yazılan ve yönetilen kısmıdır. Sunum tarafı ise uygulamanın içerik kısmını kapsayan ve son kullancıya ulaştıran kısmıdır. Bu kısımlar şablon editörü ile hazırlanan, ve içinde Smarty’nin yapısal bazı kurallarına göre kullanabileceğiz kendine özgün kodlar ile tarayıcı tabanlı kodları içermektedir.
Yukarıdaki bahsetmiş olduğum yapı ile projelerde genellikle uyumlu ve etkin çalışması zor olan tasarımcılar ile yazılımcılara bir ortam sağlanmaktadır. Bu iş içinde yazılımcılar kendi işlerinden sorumlu olurken kodlardan yapısal olarak tamamen ayrı bir ortamda çalışan tasarımcılar sunum kısmından sorumlu olurlar. Sunum kısmı içerisinde tasarımcılar, HTML, CSS, Smarty Koldları, görsel objelerin tasarımı ve gerekirse Javascript ile uğraşmaktadırlar.
Bu çalışma şeklinin genel olarak faydaları şunlardır.
- Tasarımcıların yapacağı hatalardan dolayı uygulama kodları bölünmeyecektir. Tasarımcılar tamamiyle sunum taraflı işlerle etkileşim içinde bulunacağından kodlara el sürülmez. Böylelikle, kodlar günveli ve yönetimi kolay olur.
- Şablonlarda oluşan hatalar Smarty hata konsolu tarafından yönetildiği için bunların bulunması ve düzeltilmesi tasarımcılar için oldukça basit ve etkilidir.
- Uygulanın tasarımı gerekirse tasarımcılar tarafında düzelenebilir ve baştan oluşturulabilir. Bu süreçte yazılımcılar tarafından hiçbir şekilde işleri aksamaz.
- Yazılımcılar hiç bir şekilde tasarım kodları içinde boğulmazlar. Sadece yazılımcıların görevi fonksiyonların devamlılığı, gerekirse iş yapısından doğacak kuralların düzenlenmesi ve şablon tarafında yol değişikliği sonrasında gerektiren değerlerin oluşturulup o katmana gönderilmesidir.
- Şablonlar verinin son olarak işlenip sunulduğu yerdir. Bu durumda tasarımcılar verinin o katmana nasıl geleceği ile ilgilenmezler. Örneğin, şablon içerisinde belli bir veri setinin gösteren bir SQL kodu olsaydı ve burada tasarımcılar yanlışlıkla koda müdahale edip silseler veya değiştirselerdi sistemin tüm akışı dururdu.
- Sunucunuzu rastgele PHP kodlarını derlemesi için açmıyorsunuz. Bunu için Smarty birçok güvenlik politikası içermektedir. Böyleliklie, tasarımcıların bu kısma yanlışlıkla veya isteyerek müdahaleleri engelenmiş olur ve sadece kendilerine atanan görevler üzerinde uğraşabilirler.
Bunu yanı sıra kodun tasarımdan farklı olması bunların çalışma şeklinin ve ortamının tamamıyla birbirinden farkı olduğu anlamına gelmez. Örneğin, tasarımcı sunacağı verinin küçük veya büyük karakter olmasını yada sıralı olmasını isterse Smarty içinde sadece şablon tarafında kullanılmak amacıyla yazılmış fonksiyonları kullanabilirler.
Smarty hakkında detaylı bilgi almak ve PHP tabanlı uygulamalarda kullanmak için http://www.smarty.net adresine bir göz atabilirsiniz.

yaklaşık 1 yıl önce
Teşekkür ederim, bu bilgiler beni aydınlattı. Yazılarınızın devamını sabırsızlıkla bekliyoruz. Iyi çalışmalar.