Filed under: Research and Development
Smarty adalah sebuah template engine berbahasa PHP. Seperti yang telah saya jelaskan dalam artikel saya SOP for Programmer, smarty bisa menjadi alternatif yang bagus buat programmer php dalam membangun web atau aplikasi yang terstruktur rapi dan bersih.

Buat anda yang belum terbiasa dengan teknik template, ada baiknya mulai beralih ke teknik ini. Bukan saja membuat struktur programming anda lebih rapi, juga akan membantu anda dalam proses debungging.
Why template
Pengertian dalam web programming, template adalah halaman utama yang digunakan untuk membuat sebuah halaman baru lainnya.
Mengapa harus menggunakan template?
Seperti kebiasaan para programmer, bahasa PHP mendukung untuk diletakkan diantara halaman HTML yang telah dibuat. Jika boleh saya berkomentar, ini akan sangat menyusahkan anda ketika ingin merubah proses yang ada didalamnya. Belom lagi jika ternyata klien anda ingin merubah tampilan website anda, tentu akan merepotkan untuk memindahkan satu per satu script PHP anda ke dalam desain yang baru.
Oleh karena itu, saya sarankan bagi anda yang baru saja belajar PHP programming, ada baiknya mengenal metode template. Bukan saja bagus untuk perkembangan teknik programming anda, tetapi juga memberikan nilai lebih terhadap skill yang anda bangun sebagai seorang programmer.
Configured
Sebelum anda menggunakan Smarty, ada baiknya kita membuat sebuah struktur file dan folder seperti yang saya contohkan sebagai berikut :

Need to Install
Tentu saja, pertama kalinya anda membutuhkan sebuah Apache dan PHP. Sedangkan database hanya dibutuhkan jika memang anda ingin membangun sebuah sistem informasi. Jika masih kesulitan, install saja Xammp atau PHPTriad
Selanjutnya download file Smarty dan simpan di folder /libs/ dalam aplikasi yang anda akan buat.
Simply Introduce
Smarty menggunakan curly brackets {$varibel} sebagai penanda bahwa pada bagian tersebut Smarty akan merubahnya menjadi informasi yang diinginkan. Saya memberikan contoh sebuah file index.html yang didalamnya terdapat variabel Smarty :
<html>
<header>
<title>{$title}</title>
<style type=’text/css’ media=’all’>@import ‘themes/{$usetheme}/style.css’;</style>
</header>
<body>
<h1>{$header}</h1>
<div>{$content}</div>
<em>{$footer}</em>
</body>
</html>
Simpan dalam folder /templates/ anda dengan nama index.html.
Start the Engine
Buatlah sebuah file dengan nama common.php dimana file ini yang akan memuat semua kebutuhan anda dalam menggunakan Smarty. Dalam file ini juga bisa anda gunakan untuk memanggil file atau fungsi penting yang akan anda gunakan dalam aplikasi. Dalam kasus ini, saya akan membuat sebuah file common.php yang terkait dengan Smarty saja.
<?php
# define template contanta
include "libs/Smarty.class.php";
# declare template constructor
$smarty = new Smarty;
$smarty->compile_dir = "cache";
?>
Selanjutnya, perhatikan kembali isi dari file index.html yang telah saya contohkan diatas. Terdapat beberapa varibel yang saya beri tanda tebal yang menandakan bahwa pada bagian ini akan saya isi dengan menggunakan Smaty ini.
Selanjutnya saya akan membuat sebuah file index.php, dengan isi sebagai berikut :
<?
include "common.php";
$smarty->assign(array(
'title‘ => ‘Penggunaan Smarty’,
‘usetheme‘ => ‘blue’,
‘header‘ => ‘Helloword to Smarty’,
‘content‘ => ‘Bagian content dibuat melalui Smarty’,
‘footer‘ => ‘Copyright Galih Bahaduri’
));
$smarty->display(’index.html’);
?>
Perhatikan pada bagian yang saya tebalkan. Itu sebagai penanda bahwa variabel tersebut terdapat didalam file index.html dan saya memasukkan informasi kedalamnya.
Simpan file ini dengan nama index.php di dalam folder root aplikasi anda. Buka browser anda dan jalankan aplikasi anda.
Complicated Template
Keuntungan menggunakan template engine adalah anda bisa memisahkan file-file yang memang digunakan pada saat tertentu saja. Artinya, selain halaman utama seperti index.html, anda juga bisa membuat file lainnya untuk menangani proses khusus. Saya akan memberikan contoh sebagai berikut :
<div style="border:solid 1px #EEEEEE;">
{$anotherheader}
</div>
Simpan dalam folder /templates/ dengan nama file header.html
Selanjutnya, saya memodifikasi file index.php sebagai berikut :
<?
include "common.php";
$smarty->assign(array(
'title' => 'Penggunaan Smarty',
'usetheme' => 'blue',
' ‘anotherheader’ => ‘Title of Your Page’,,
‘content’ => ‘Bagian content dibuat melalui Smarty’,
‘footer’ => ‘Copyright Eddy Subratha’
));
$smarty->assign(array(’header’ => $smarty->fetch(’header.html’)));
$smarty->display(’index.html’);
?>
Perhatikan bagian yang saya tebalkan. Seperti yang anda ketahui bahwa di dalam file index.html terdapat bracket {$header} dan didalam file header.html, terdapat sebuah bracket {$anotherheader}.
Dalam kasus ini, saya ingin supaya data {$header} tersebut saya ambil dari file header.html, dimana dalam file header.html terdapat bracket {$anotherheader} yang saya isi dengan sebuah teks “Title of Your Page”.
Usefull Function
Smarty juga menyediakan beragam fungsi yang bisa anda gunakan dalam template anda seperti informasi tanggal, membuat kolom input, text filtering, dan masih banyak lagi. Ada baiknya jika anda membaca dokumentasi Smarty untuk melihat beragam fungsi-fungsi tersebut.
Silahkan anda donwload contoh file yang telah saya buat diatas :
. simply.rar (95 Kb)
. complicated.rar (96 Kb)
3 Comments so far
Leave a comment
Dulu saya pernah mencoba
Comment by hendri March 19, 2008 @ 1:34 amsemartismarty. ribet juga sih, soalnya variable nya mesti dimasukan dulu $smarty->assign();makasih aku lagi mau belajar smarty
Comment by mahrizal April 2, 2009 @ 12:38 pmSmarty emang Smart
Comment by indojasawe May 10, 2010 @ 1:36 am