Selasa, 19 Juni 2007

Ngulik smarty template engine bagian 1 neh

Bagian I
Pendahuluan
Smarty adalah pustaka untuk PHP yg digunakan sebagai template engine pada pembuatan aplikasi-aplikasi PHP. Dengan menggunakan Smarty, kita dapat memisahkan pembuatan design dan coding dengan mudah. Seperti yg disebutkan pada dokumentasi Smarty sbb:

One design goal of Smarty is the separation of business logic and presentation logic. This means templates can certainly contain logic under the condition that it is for presentation only. Things such as including other templates, altering table row colors, upper-casing a variable, looping over an array of data and displaying it, etc. are all examples of presentation logic. This does not mean that Smarty forces a separation of business and presentation logic. Smarty has no knowledge of which is which, so placing business logic in the template is your own doing. Also, if you desire no logic in your templates you certainly can do so by boiling the content down to text and variables only.

Lalu apa guna Smarty? Spt disebutkan di atas, tujuan Smarty adalah memisahkan business logic (coding part) dengan presentation logic (design part). Artinya, dalam suatu proyek aplikasi yg dikerjakan scr kelompok, bagian desainer dan programmer dapat bekerja secara bersamaan, krn bagian mereka masing2 sudah dipisahkan dengan penggunaan Smarty. Untuk yg biasa ber-solo-karir atau bekerja sendiri pun, dengan adanya bantuan Smarty akan memudahkan proses manajemen proyek aplikasi yg dibuat.

Salah satu keunggulan utama Smarty yg scr pribadi paling dirasakan adalah fitur file konfigurasi untuk template. Sebuah file konfigurasi dapat digunakan oleh lebih dari satu template. Hal ini berguna untuk meletakkan hal-hal yang bersifat generik. Selain itu, dng sedikit kreativitas, file konfigurasi dapat dimanfaatkan sbg sarana personalisasi situs. Sebagai contoh, untuk membuat situs dng 2 bahasa, Indonesia dan Inggris, kita cukup mempersiapkan 2 file konfigurasi, satu untuk bahasa Indonesia dan satunya lagi bahasa Inggris. Ini akan dijelaskan lebih lanjut pada contoh implementasi.

Untuk daftar fitur Smarty, berikut di antaranya spt dikutip dari dokumentasi Smarty:

Some of Smarty’s features:
- It is extremely fast.
- It is efficient since the PHP parser does the dirty work.
- No template parsing overhead, only compiles once.
- It is smart about recompiling only the template files that have changed.
- You can make custom functions and custom variable modifiers, so the template language is extremely extensible.
- Configurable template delimiter tag syntax, so you can use {}, {{}}, , etc.
- The if/elseif/else/endif constructs are passed to the PHP parser, so the {if …} expression syntax can be as simple or as complex as you like.
- Unlimited nesting of sections, ifs, etc. allowed.
- It is possible to embed PHP code right in your template files, although this may not be needed (nor recommended) since the engine is so customizable.
- Built-in caching support
- Arbitrary template sources
- Custom cache handling functions
- Plugin architecture

Cara kerja Smarty sendiri tidak jauh berbeda dgn engine2 template yg lain. Intinya adalah melakukan parsing ke dalam template yg telah ditentukan. Untuk parsing, kita menggunakan sebuah file PHP yg didalamnya berisi proses business logic dan proses parsing itu sendiri. Berikut ini contohnya:

[php]< ?php //nama file: index.php require 'libs/Smarty.class.php'; $smarty = new Smarty; $smarty->assign(”content”,”Smarty says, “Hello World”");
$smarty->display(’index.tpl’);
?>[/php]

Sedangkan untuk contoh file template sbb:

[html]


{$content}

[/html]

Jika index.php di atas dieksekusi, maka akan menghasilkan kode HTML sbb:

[html]


Smarty says, “Hello World”

[/html]

Cukup gampang kan? {$nama_variabel} sendiri hanyalah salah satu dari atribut yg didukung oleh Smarty. Ada {#nama_variabel#} untuk mengakses variabel dari file konfigurasi, atribut “|” untuk pemanggilan function, dan lain sebagainya. Smarty juga memberikan kemudahan dalam pembuatan form dan tabel. Misal fungsi html_select_date untuk membuat (komponen) form pemilihan tanggal scr otomatis, html_select_time untuk memilih jam/waktu, html_options untuk membuat pilihan option scr otomatis, dll.

1 komentar:

Hamid mengatakan...

Halloo .. itu ada character aneh2 bisa tulung diilangin ?? bikin binun soalnya