Membuat PHP Template Engine Sederhana

Diposting oleh wanz-blog on Jumat, 16 Desember 2011

Share on :
Inginnya posting artikel ini sejak sebelum-sebelumnya, tapi karena saya terlalu sibuk dengan deadline tugas, jadi baru sempat sekarang.
Berawal dari kebingungan yang saya alami dalam mengerjakan tugas kuliah Pemograman Internet, khususnya dalam membuat fitur memilih template (Ohya, buat yang belum tahu, tugasnya itu membuat CMS sederhana dengan PHP). Bagaimana caranya membuat fitur memilih template yang:
  • sederhana;
  • mudah digunakan oleh programmer;
  • reusable, dapat digunakan untuk kode program yang lain;
  • template dapat ditambah tanpa harus mengkode ulang;
  • template dapat dibuat terpisah (mandiri) oleh desainer;
Titik terang mulai tampak ketika saya melihat seorang teman menggunakan sesuatu yang disebut Template Engine, namanya Smarty. Konsep yang saya tangkap waktu itu adalah tag-replacing. Sederhana, tapi sama sekali tidak terpikir olehku sebelumnya. Sebenarnya Smarty tidak sesederhana itu, masih banyak fitur yang lain. Bisa dibaca-baca di situsnya.
Tadinya saya mau menggunakan Smarty untuk mengerjakan tugas, tapi akhirnya saya memutuskan untuk mencoba-coba membuat template engine yang mirip namun jauh lebih sederhana. Hasilnya adalah sebuah kelas yang diberi nama MySmarty (terinspirasi dari Smarty =) ). Konsepnya pun sederhana, hanya tag-replacing.
Untuk menjelaskannya, saya akan menggunakan contoh berupa langkah-langkah berikut:
  1. Pertama-tama, tentunya import kelas MySmarty dan instansiasi,
  2. require_once("MySmarty.php"); //Instansiasi kelas MySmarty $ms = new MySmarty();
  3. Tuliskan kode berikut untuk membuat welcome message dan side menu,
  4. //Top Message $topMsg = "Welcome, ".$_SESSION["role"]." ! "; if($_SESSION["role"] == "admin") $topMsg .= " | Logout"; else if($_SESSION["role"] == "guest") $topMsg .= " | Login as Administrator"; //Tempatkan message di bagian top dengan method setTop $ms->setTop($topMsg); //Menu Vertikal $arrMenu = array("Home" => "home.php","Guest Book" => "home.php?menu=guest_book"); //Tempatkan menu di bagian left $ms->setLeft("Menu ".$ms->vMenu($arrMenu));
  5. Tampilkan web sesuai desain template yang diinginkan, dalam contoh ini nama template-nya adalah “elegant”
  6. $ms->display("elegant");
  7. Web ditampilkan sesuai template sebagaimana dapat dilihat pada gambar di bawah ini. Bagian yang dilingkari adalah top message dan menu vertikal yang kita masukkan dengan method setTop() dan setLeft().
Elegant
Jika kita memanggil method display() dengan nama template yang berbeda, maka tampilan web pun akan berbeda. Berikut ini adalah contoh pemanggilan method tersebut dengan template “orange” dan “simple”.
Double Template
Singkat kata, dengan menggunakan template engine, banyak kemudahan yang didapatkan dalam men-develop situs. Secara umum, kemudahan tersebut dirasakan oleh programmer dan desainer:
  • Bagi programmer, dia dapat mengkode tanpa harus memikirkan desain, seperti yang dicontohkan di atas.
  • Bagi desainer, dia dapat mendesain web secara independen dengan membuat template yang dapat diaplikasikan untuk kode manapun. Nah, bagaimana cara membuat template? Mudah-mudahan sempat saya tuliskan di artikel berikutnya.
Download kode class MySmarty : MySmarty.php
Untuk yang suka baca dokumen yang agak teknis, bisa download Dokumentasi Kelas MySmarty

{ 0 komentar... read them below or add one }

Posting Komentar