Smarty template motoru ve PHP

Bu makalemde sizlere PHP için geliştirilmiş hızlı, kolay kullanılabilir ve öğrenilebilir bir tema motoru olan Smarty'i nasıl kuracağınızı ve kullanacağınızı anlatacağım.

Smarty kullanmak için ilk yapmanız gereken şey Smarty sitesindeki download kısmından Smarty'i bilgisayarınıza indirmek. İndirme işlemi bittikten sonra rar içerisindeki dosyaları bilgisayarınızda herhangi bir yere çıkartın ve çıkartılan klasör içerisindeki "libs" klasörünü sunucunuzun public_html yada windows bir hosting kullanıyorsanız httpdocs klasörüne gönderin ve adını "smarty" olarak değiştirin.

Daha sonra public_html ( Ben Linux sunucu kullandığımdan dolayı ona göre anlatıyorum, siz Windows kullanıyorsanız kendinize göre düzenliyebilirsiniz ) dizini altında "smartyrules" adında bir klasör oluşturun ve bu klasörün altında da 2 tane alt klasör oluşturun. Bu klasörlerin adları ise sırasıyla "html" ve "compile" olmalı, eğer Linux sunucu kullanıyorsanız bu klasörlerden "compile" klasörüne CHMOD değeri olarak 777 vermeniz gerekmekte, eğer Windows kullanıyorsanız böyle bir işleme gerek yok. Sonuç olarak oluşturduğunuz bu smartyrules klasörüne www.domain.com/smartyrules yazarak ulaşabilmelisiniz.

Merhaba Dünya

Yukarıdaki adımları başarı ile tamamlamış iseniz eğer, yaptıklarımınızın tam olarak çalışıp çalışmadığını öğrenmek için basit bir "Merhaba Dünya" uygulaması yapalım :) ( Böyle yapınca sanki bilgisayar uzaylıymış gibi geliyor bana da neyse :) )

Şimdi az önce oluşturduğumuz Smartyrules klasörüne geri dönelim ve burada "libs.inc.php" isimli bir dosya oluşturalım. Bu dosyanın içeriği ise aşağıdaki gibi olmalı

PHP:
# Dosya Adı : libs.inc.php

$fixpath = dirname(__FILE__);

/* aşağıdaki "/home/username/smarty"  değerini kendinize göre düzenlemelisiniz  username yazan yere hosting kontrol panelinize girerken kullandığınız kullanıcı adınızı, smarty yazan yere ise libs klasörünü sunucuya attığınızda adını ne olarak değiştirdiyseniz onu vermelisiniz */
define ("SMARTY_DIR", "/home/username/smarty/");

require_once (SMARTY_DIR."Smarty.class.php");
$smarty = new Smarty;
$smarty->compile_dir = "$fixpath/compile";
$smarty->template_dir = "$fixpath/html";

Dosyayı kaydettikten sonra yine "smartyrules" klasörünüz içerisinde "index.php" isimli bir dosya yaratın ve içerisine aşağıdaki kodları yazın

PHP:
# dosya adı : index.php
require_once ("./libs.inc.php");
$smarty->display ("index.html");

Burada kullanmış olduğumuz önemli bir Smarty metodu var ki oda "display()". Bu metod sayesinde biraz önce yaratmış olduğumuz "html" dizini içerisinde bulunan dosyanın sayfamızda görüntülenmesini sağlıyoruz. "Eee, biz index.html dosyası yaratmadık ki? gibi bir soru gelirse aklınıza kafanızı yormayın okumaya devam edin :)"

Şimdi smartyrules klasörü içerisinde oluşturmuş olduğumuz html dizinine geçin ve burada "index.html" adıyla bir dosya oluşturun dosya içeriği ise aşağıdaki şekilde olmalı

HTML:
Bu Benim ilk Smarty sayfam.. Merhaba Dünya...

veee mutlu son :) www.domain.com/smaryrules adresini tarayıcınıza yazdığınızda
"Bu Benim ilk Smarty sayfam.. Merhaba Dünya..." satırını görüyorsanız "Merhaba Dünya" uygulamasını başarı ile yapmışsınız demek..

İkinci örneğimizde bu sefer daha çok smarty'e yöneleceğiz şimdi az önce düzenlemiş olduğunuz index.php dosyasınıza geri dönün ve aşağıdaki kodları yazın

PHP:
# dosya adı : index.php
require_once ("./libs.inc.php");
$smarty->assign ("name", "Gurkan OLUC");
$smarty->display ("index.html");

ve html dizininiz içerisindeki index.html dosyasını açıp içeriğini şu şekilde değiştirin

HTML:
Merhaba, {$name}

eğer www.domain.com/smartyrules adresini tarayıcınıza yazdığınızda "Merhaba, Gurkan OLUC" gibi bir çıktı ile karşılaştıysanız bu örneğide başarı ile tamamlamışsınız demektir :)
3. örneğimize geçmeden önce bu işlemleri yaparken kullandığımız smarty fonksiyonları ve ne işe yaradıkları hakkında biraz bilgi vermek istiyorum.

1. assign()

PHP:
$smarty->assign("degisken_adi","degisken_degeri")

Şeklinde bir kullanıma sahip olan bu fonksiyon, smarty ile göstereceğiniz sayfada bir değişken oluşturmanızı sağlar. Bu oluşturmuş olduğunuz değişkeni index.html sayfasında kullanmak ise oldukça basit

HTML:
{$degisken_adi}

şeklinde yazdığınız takdirde değişkene ait değer ekrana basılıyor.
2. display()

PHP:
$smarty->display('gosterilecek_dosya')

şeklinde kullanıma sahip olan ve yukarıda da bir miktar açıkladığım bu fonksiyon yardımı ilede html klasörümüz içersinde oluşturmuş olduğumuz dosyayı sayfamıza dahil ediyoruz, diğer bir değişle gösteriyoruz.

3. örneğimizde ise sadece bir değişkeni ekrana yazdırmayacağız. Bu sefer bir dizi değişken içindeki birden çok veriyi ekrana yazdıracağız buyrun kodlar ve açıklamaları

index.php

PHP:
# dosya adı : index.php
require_once ("./libs.inc.php");
$friends = array("Mike", "Simpson", "Bill", "Torvald", "Paul", "John Doe");
$smarty->assign ("friends", $friends);
$smarty->display ("index.html");

index.html
Arkadaşlar:

HTML:
{section name=i loop=$friends}
{$friends[i]}<br />
{/section}

Bu örneğimizde ilk olarak $friends adında bir dizi değişken oluşturduk ve ve bu dizi değişkeni assign ile değişken olarak belledikten sonra index.html dosyamızı yükledik ancak bu sefer 2. örnekten farklı olarak $friends dizi değişkeni birden fazla değer içerdiği için onu döngü içinde ekrana yazdırdık.

Bu makaleden şimdilik bu kadar arkadaşlar. Smarty template engine ile ilgili daha gelişmiş bir rehber ararsanız size sevgili Onur abinin yazmış olduğu smarty rehberini önerebilirim. Kafanıza takılan soruları buradan sorabilirsiniz bilgim yettiğince yardımcı olmaya çalışırım.

Bir dahaki makalemde PHP ile veritabanına bağlandıktan sonra gelen verileri smarty içerisinde nasıl göstereceğimizden ve birkaç olaydan daha bahsedeceğim :) Bir dahaki makaleye kadar kendinize ve sevdiklerinize iyi bakın

Saygılar,
Gürkan OLUÇ

Bu yazı 17 Haziran 2007, 13:20 tarihinde Makaleler, PHP, Web Geliştirme kategorisi altında yayınlandı. Bu yazıya yapılacak yorumlardan haberdar olmak için RSS 2.0 beslemesini kullanabilirsiniz. Yorum yapabilirsiniz, veya kendi sitenizden geri izleme yapabilirsiniz.

“Smarty template motoru ve PHP” için 5 Yorum

Yorum Yapın

Clicky Web Analytics