PHP’de template sistemleri basit bir açıklama ile kodu içerikten yani görünümden ayırmak için kullanılır. Tek bir satırdaki değişiklik ile tüm sitenin görünümünü değiştirebilirsin. Hatta tüm sitelerin görünümünü tek bir satır ile değiştirebilir bunu tüm sitelerine uyarlayabilirsin.
Hayal edin bir hamburger yapıyorsunuz ve hamburgerin içine köfte falan ilave edip bide ketçap mayonez ile lezzetleştiriyorsunuz. Bunu otomatik bir makine ile yaptığınızı düşünün size sadece ekmeği ve malzemeleri bir kereye mahsus makinaya koymak kalıyor. Makina kendi kendine onları hamburger haline getiriyor. Aynı şekilde template sistemleride bu örnekten farklı değildir. Bir websitesinde sayfa sayısından farklı olan tek şey içeriktir. PHP template sistemlerinin hedefi ise statik içeriği değişken içeriğe çevirerek dinamik bir görüntü kazandırmaktır.
<?php $sayfa = $_GET["sayfa"]; if (($sayfa == "anasayfa") or ($sayfa =="")) { include("ana.php"); } else if($sayfa == "hakkinda") { include("hakkinda.php"); } else if($sayfa == "iletisim") { include("iletisim.php"); } else if($sayfa == "sss") { include("sss.php"); } else if($sayfa == "linkler") { include("linkler.php"); } else if($sayfa == "gizlilik") { include("gizlilik.php"); } else { include("hata.php"); } ?>
Bu teknik ile statik bir index.php sayfası tanımlarsın ve sonra dinamik olarak değişken içeriğini include yöntemi ile bu statik sayfaya dahil edersin.
Kodları analiz etmemiz gerekirse örneğin http://guraysuerdem.com/index.php?sayfa=hakkinda sayfası çağırıldığı zaman hakkinda.php sayfası çağıralarak çalıştıralacak.Eğer menüde bulunmayan bir sayfa çağırıldığı zaman hata.php sayfası görünütlenecektir.
Header & Footer (Üst ve Alt)
İçerik ile uğraşmak size yük oluyorsa ve karmaşa ile uğraşmak istemiyorsanız statik sayfalarınızı alt,üst,menü kendinize göre bölümlere ayırabilirsiniz.Birçok gelişmiş sistemler bu şekilde çalışır.Eminimki birçok sistemde karşılaşmışsınızdır header.php footer.php veya right.php left.php vb. sayfalar karmaşayı önlemek için kullanılır.Zaten template sistemleri başlı başına bir karmaşa önleyici rolünü üstleniyorlar.Bu sayede daha verimli olmanızı sağlıyor.Bunu ilk başta belirtmiştim.
<?php include("header.php"); ?>
İÇERİK
<?php include("footer.php"); ?>
http://guraysuerdem.com/sayfa.php gibi geniş bir sistemde sayfa sürüsüyle uğraşmak can sıkıcı ve karmaşıktır.
Burada anlattığım teorik bir bilgidir. Sadece sayfalama tekniğinin nasıl yapıldığını anlatmaya çalıştım. Basit bir template sistemi yaparak daha iyi anlatmaya çalışacağım. Piyasada birçok template sistemi bulunmaktadır. Fakat benimde kullandığım ve önerdiğim sistem Smarty template sistemidir. Unutmayınki verimli bir çalışma düzen ile olur.
Eğer karmaşık ve düzensiz bir şekilde kod yazmaya devam ediyorsanız bundan vazgeçmenizi öneririm. Her zaman mantık ile bilgiyi birlikte kullanmanız dileğiyle.
Ayrıca burada daha çok yeni başlayanlara öğretici bilgiler verdiğim için bilenlerinde yorumlara katılarak öğrenenlere bilgi paylaşımı yapmalarını tavsiye ederim.
Teşekkürler. Çok faydalandım 🙂 Ancak Smarty tam olarak ne işe yarıyor acaba?
Smarty bir template sistemidir.Yani kodları tasarımdan ayırmak için kullanılır.Örneğin çoklu tema kullanan sistemler template motoru kullanırlar bunların en çok kullanılanı Smarty’dir.Araştırma yapabilirsin bu konuda.
teşekkür ederim
Gerçekten cok teşekkürler işallah zaman içinde php çözeceğim…
teşekür ederim harika anlatmışsınız öğreniyorum sayenizde
if else if yapısı yerine switch case kullanmak daha performanslı olacaktır. Teşekkürler
Switch/case kullansanız performantan kar edersiniz aslında.