|
|

|
Bab 1. Apa itu Smarty?
Smarty adalah mesin template untuk PHP. Lebih khusus, ia memfasilitasi
cara yang bisa diatur untuk memisahkan logika aplikasi dan konten dari
penampilannya. Ini jauh lebih baik dijelaskan dalam situasi di mana
pemrogram aplikasi dan desainer template memainkan aturan yang berbeda,
atau secara umum bukan orang yang sama.
Sebagai contoh, katakanlah anda sedang membuat halaman web yang
menampilkan artikel koran.
Artikel $headline, $tagline,
$author dan $body adalah elemen
konten, tidak berisi informasi mengenai bagaimana akan ditampilkan.
Ia akan dioper ke dalam Smarty
oleh aplikasi.
Kemudian desainer template mengedit template dan
menggunakan kombinasi tag HTML dan
tag template untuk
membentuk presentasi terhadap
variabel ini dengan
elemen seperti tabel, div, warna latar belakang, ukuran font, style
sheets, svg dll.
Suatu hari pemrogram perlu mengubah cara konten
artikel diambil (perubahan dalam logika aplikasi). Perubahan
ini tidak mempengaruhi desainer template, konten masih akan
muncul dalam template persis sama.
Demikian juga jika desainer template ingin mendesain ulang template
seutuhnya, ini tidak memerlukan perubahan logika aplikasi.
Oleh karena itu, pemrogram dapat membuat perubahan
terhadap logika aplikasi tanpa perlu merestrukturisasi template, dan
desainer template bisa membuat perubahan terhadap template tanpa
membongkar logika aplikasi.
Satu tujuan desain Smarty adalah pemisahan logika bisnis dan logika
presentasi.
Ini berarti template tentu saja dapat berisi logika di bawah
kondisi yang hanya untuk presentasi saja. Hal seperti
menyertakan
template lain,
memilih warna baris tabel,
membesarkan huruf variabel,
mengulang terus
sebuah data array dan menampilkannya
adalah contoh dari logika presentasi.
Ini tidak
berarti bahwa Smarty memaksa pemisahan logika bisnis dan presentasi. Smarty
tidak mengetahui yang mana adalah yang mana, maka menempatkan logika bisnis
dalam template adalah anda sendiri yang melakukannya.
Juga, jika anda
menginginkan tidak ada logika dalam template, anda
tentunya dapat melakukannya dengan menetapkan konten cukup ke teks dan
variabel saja.
Salah satu aspek unik mengenai Smarty adalah kompilasi template. Ini
berartu Smarty membaca file template dan membuat naskah PHP darinya.
Sekali dibuat, selanjutnya ia dieksekusi darinya. Oleh karenanya tidak
ada beban menguraikan file template untuk setiap permintaan, dan setiap
template dapat memanfaatkan solusi cache kompilator PHP seperti
eAccelerator,
ionCube
mmCache
atau Zend Accelerator
adalah beberapa diantaranya.
Beberapa fitur Smarty:
Sangat cepat.
Efisien karena pengurai PHP yang mengerjakan pekerjaan beratnya.
Tidak ada kelebihan penguraian template, hanya sekali mengompilasi.
Pintar mengenai rekompilasi
hanya file template yang telah diubah.
Anda dapat membuat dengan mudah fungsi kustom
dan pengubah variabel, agar
bahasa template bisa diperluas secara ekstrim.
Template bisa mengkonfigurasi sintaks tag
{pemisah}, agar
anda dapat menggunakan
{$foo}, {{$foo}},
<!--{$foo}-->, dll.
Konstruksi
{if}..{elseif}..{else}..{/if}
dioper ke pengurai PHP, maka sintaks ekspresi {if...}
bisa berupa evaluasi sesederhana atau serumit yang anda
inginkan.
Membolehkan pengulangan tidak terbatas dari
sections, if's dll.
Dimungkinkan untuk
menyertakan kode PHP
langsung dalam file template anda, meskipun ini mungkin tidak
diperlukan (ataupun direkomendasikan) karena mesin
dapat dikustomisasi.
Dukungan built-in caching
Bebas sumber template
Fungsi kustom
penanganan cache
Arsitektur Plugin
|
|
|