Langkah Pertama Menguasai Smarty
Apa sih sebenarnya Smarty? Penjelasan pendeknya, Smarty adalah library PHP untuk mengolah tampilan berbasis web dari sebuah cetakan tampilan dan data dari skrip PHP.
Sistem template ini sangat penting dalam pekerjaan menampilkan halaman web dinamis. Pekerjaan mengkreasi tampilan dan logika pemrograman secara mudah dipisahkan. Sehingga tingkat kebergantungan akan dikurangi.
Cara kerja sistem template pernah saya tulis di disini, atau disini. Dalam tulisan ini saya akan membahas sistem templating yang lebih rumit dan lengkap.
Asumsi:
- Sistem operasi Debian GNU/Linux 5.0 "Lenni",
- PHP 5.2.6,
- Smarty 2.6.26, bisa didapatkan dari URI ini,
- Konfigurasi Apache 2.2.9 standar bawaan Debian,
- Mampu menggunakan perintah baris di GNU/Linux.
Siapkan direktori kerja di bawah struktur direktory Apache, yaitu /var/www. Karena otoritas membuat file/direktori dalam direktori ini adalah user "root" maka kita harus mengubah efektif id kita menjadi root dengan perintah,
salman@neon:~$ su -
Password:
neon:~#
Perhatikan perintah di atas. Username yang digunakan sebelumnya adalah "salman" setelah perintah "su -", user menjadi "root". Sesuaikan dengan username yang Anda gunakan. Saatnya membuat struktur direktori kerja.
neon:~# mkdir -p /var/www/smarty/{templates,templates_c,cache,configs}
neon:~# chown -R salman:salman /var/www/smarty/
neon:~# chown www-data:www-data /var/www/smarty/{templates_c,cache}
Download file Smarty dari URI yang telah ditunjukkan di atas. Kemudian uraikan file tersebut.
salman@neon:~$ tar -xzvf Smarty-2.6.26.tar.gz
salman@neon:~$ mv Smarty-2.6.26/libs/ /var/www/smarty
Struktur direktori akan nampak seperti ini,
/var/www/smarty
|-- cache
|-- configs
|-- libs
| |-- internals
| `-- plugins
|-- templates
`-- templates_c
Kita akan membuat sebuah halaman sederhana untuk menampilkan pesan yang sangat terkenal, "Hello World". Siapkan template untuk ditampilkan.
salman@neon:~$ cd /var/www/smarty
salman@neon:/var/www/smarty$ vi templates/index.tpl
Isi file adalah,
<HTML>
<BODY>
{$isi}
</BODY>
</HTML>
Setelah itu siapkan skrip yang akan menggunakan template ini.
salman@neon:/var/www/smarty$ vi index.php
Isi file,
<?php
require libs/Smarty.class.php;
$smarty = new Smarty;
$smarty->assign("isi","Hello World.");
$smarty->display(index.tpl);
?>
Setelah itu akses file index.php menggunakan web browser. Isikan pada address bar browser. http://localhost/smarty/.
E.O.T
Menampilkan File Text Secara Interaktif
Setelah beberapa hari terpikir bagaimana menampilkan text secara interaktif di web browser, inilah skrip pertama untuk menuju ke arah tersebut.
Untuk mencoba skenario ini perlu dibuat dua skrip php, yang pertama adalah skrip untuk membuat bilangan random dan menyimpannya dalam sebuah file text.
<?php
$fp = fopen("data.log", "a+");
while (1) {
$rnd = rand(1,64000)."\n";
fwrite($fp, $rnd);
sleep(1);
}
?>
Yang kedua adalah skrip untuk menampilkan isi file yang dihasilkan oleh skrip yang pertama.
<?php
$lastlen = 0;
$filename = "data.log";
while (1) {
$fp = file($filename);
$len = count($fp);
if ($lastlen < $len) {
for ($x=$lastlen; $x<$len; $x++) {
echo $fp[$x];
}
}
$lastlen = $len;
}
?>
Untuk mencoba jalankan perintah berikut di console,
salman@neon:~$ php random.php &
salman@neon:~$ php showrandom.php
Pekerjaan rumah berikutnya adalah bagaimana skrip ini diakses dan berjalan di web browser.
E.O.N.>
PHP: Template
Pengantar
Template secara bahasa bisa diartikan sebagai cetakan. Dengan template ini bila ingin membuat sebuah benda, katakanlah sebuah mainan, kita tidak perlu lagi memikirkan bagaimana bentuknya. Kita hanya perlu memikirkan apa bahan yang akan kita pakai. Sedangkan bentuknya akan dipikirkan dan dibuat oleh orang lain.
Begitu pula dalam pengembangan sebuah halaman web, sering dijumpai pekerjaan desain halaman html yang berbeda-beda dengan isi yang sama. Tentu saja ini akan menyita waktu jika harus memasukkan tag-tag html dalam skrip. Karena setiap desain berubah programmer harus mengubah kode program dari halaman web yang bersangkutan.
Karena kesulitan ini timbul ide untuk memisahkan antara pekerjaan desain dan skrip, sehingga tingkat ketergantungan antara desain dan skriping tidak terlalu kuat. Para desainer dapat dengan bebas mengubah desain mereka tanpa mengharuskan para programmer mengubah skrip yang mereka buat. Tentu saja harus ada persetujuan-persetujuan yang dibuat antara para programmer dan desainer. Dengan cara ini waktu yang dibutuhkan dalam pekerjaan pembuatan halaman web akan leih sedikit, dengan hasil yang maksimal.
Ada banyak paket pemroses template yang bisa didapatkan dari internet. Misalnya FastTemplate, XTemplate, flextemplate, dan phplate. Alih-alih menjelaskan paket-paket yang tersedia ini saya memberikan contoh sebuah program pemroses template sederhana, sehingga cara kerjanya dapat kita runut dengan mudah.
About Me
Profesional teknologi informasi secara kebetulan. Mantan pelajar fisika instrumentasi dan terapan. Bekas programmer dan sekarang lebih sering mengajar dan memelihara beberapa server dengan sistem operasi GNU/Linux.
Sempat belajar materi standar fisika, semisal: termodinamika, mekanika klasik, mekanika kuantum, fisika zat padat, dan fisika inti. Pernah mempelajari Thin Film Transistor. Pernah juga belajar jaringan di CISCO Academy.
Senang membaca, tapi jarang menulis. Menikmati makanan enak dan jalan-jalan. Dekat dengan dunia anak-anak dan pendidikan.
Menyukai tantangan, troubleshooting, skill teknis, dan elektronika.
Mengembangkan materi training GNU/Linux, PHP, database, dan jaringan komputer. Tentu saja juga mengajarkannya. Pernah mengembangkan materi laboratorium instrumentasi elektronika dan bahasa pemrograman PASCAL. Di hari-hari yang telah lewat, membuat desain dan implementasi sistem instrumentasi elektronika dan transduser. Desain dan implementasi jaringan komputer berbasis GNU/Linux dan piranti-piranti CISCO.
beberapa buku panduan GNU/Linux yang bisa didapatkan di toko buku.
Pernah menggunakan pemrograman berbasis web dengan PHP dan Java. MySQL dan PostgreSQL. Juga bahasa pemrograman Python, BASIC, XBase (Clipper, FoxBase, DBase), PASCAL, C/C++, dan tentu saja pemrograman shell.
Minat Saat Ini
Sistem Operasi GNU/Linux, khususnya distribusi Debian dan CentOS
Otomotif, member 405 Community
Membaca buku-buku dan blog yang berkaitan dengan bisnis dan marketing secara umum.
Sedang tertarik dengan Sun Solaris OS dan mikrokontroler untuk kesenangan. Bekerja ditemani beberapa komputer kelas pentium I dan laptop HP 520 dengan sistem operasi GNU/Linux Debian v5.0 dengan nama sandi Lenny.
Bisa dihubungi dengan email sas—at—salman.or.id.






