Apakah Anda dihadapkan pada pembuatan situs web yang dibuat oleh seorang programmer (mungkin Anda) dan seorang desainer? Apakah Anda tidak tahu cara membuat pekerjaan lebih mudah bagi Anda berdua? Izinkan saya memberi Anda jawabannya: gunakan FastTemplate untuk membuat situs Anda lebih mudah disesuaikan!
Oke, Anda mungkin bertanya-tanya mengapa Anda harus menggunakan FastTemplates.
· Dapat mengubah tampilan seluruh situs Anda dalam hitungan detik · Pemrograman abstrak, tanpa kode HTML sampah · Desainer tidak perlu peduli dengan semua kode yang "tidak jelas" · Sangat cepat · Lebih mudah menggunakan kembali templat lama (vs. formulir biasa)
FastTemplate berasal dari paket Perl dengan nama yang sama (yang dapat ditemukan di CPAN). Anda dapat mendownload versi PHP dari beranda (alamat download situs ini adalah: http://www.phpe.net/downloads/1.shtml). Anda hanya memerlukan salah satu file kelas (class.FastTemplate.php).
Izinkan saya menjelaskan terlebih dahulu perbedaan antara menggunakan templat untuk menghasilkan halaman dan sekadar menggemakan atau mencetaknya.
Menggunakan metode echo/print saja sudah bagus untuk menulis skrip pendek, tetapi tidak membantu Anda dalam pengorganisasian dan penyesuaian yang lebih baik. Templat di sisi lain memberi Anda kemampuan untuk membuat situs multibahasa hanya dengan mengubah parameter. Mereka dapat mendorong Anda untuk lebih peduli terhadap apa yang harus Anda lakukan.
Jangan takut untuk berpikir sebelum memulai coding. Ini mungkin memakan waktu, tetapi biayanya akan terbayar seiring dengan berkembangnya proyek.
Jadi, bagaimana cara menerapkan FastTemplate? Pertama, Anda perlu melakukan panggilan sederhana:
<?php $tpl=new FastTemplate ("path");
?>
Berikan jalur ke direktori tempat semua file templat Anda disimpan. Ini mengembalikan objek, yang dapat Anda gunakan untuk penetapan parameter, pembuatan halaman, dll.
FastTemplate didasarkan pada asumsi bahwa halaman besar terdiri dari banyak bagian kecil. Setiap bagian memiliki nama yang unik. Bagian terkecilnya adalah menugaskannya ke string teks normal dengan nama unik. Ini dapat dilakukan melalui <?php
$tpl->assign(NAMA, "teks");
?>
untuk menyelesaikan. Sekarang, jika salah satu template Anda berisi {NAME}, FastTemplate mengetahui maksud Anda.
Selain itu, FastTemplate perlu mengetahui bagaimana Anda ingin memanggil template Anda. Anda harus meneruskan array asosiatif (associative
array) ke <?php $tpl->define();
Ayo beri petunjuk.
<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>
Penugasan ini akan memberikan foo dan bar masing-masing file yang berbeda (bernama foo.tpl dan bar.tpl).
Sekarang Anda ingin FastTemplate mengganti semua {MACROS} di template foo dengan nilai yang sesuai. Dengan mengeluarkan perintah
<?php
$tpl->parse(PAGECONTENT, "foo");
?>
untuk mencapai. Perintah ini akan menetapkan konten template "foo" ke PAGECONTENT. Tentu saja kita belum selesai, karena bilah templat adalah definisi halaman utama, dan FastTemplate perlu menggantinya.
Makro {PAGECONTENT}. Kita juga perlu memberikan nilai pada PAGETITLE, sebagai berikut: <?php
$tpl->assign(PAGETITLE, "Tes FooBar");
$tpl->parse(UTAMA, "bilah");
?>
Mudah, bukan? Kita hanya perlu menampilkannya sekarang: <?php
$tpl->FastPrint(UTAMA);
?>
Tiga file berikut menunjukkan penjelasan lebih rinci tentang latihan sebenarnya. Saya tidak tahu bagaimana hidup tanpa teknologi ini di kehidupan nyata--
Desainer Anda akan senang dan atasan Anda akan tersenyum karena Anda dapat menyelesaikan lebih banyak pekerjaan dalam waktu lebih singkat.
bar.tpl <!-- bar.tpl -->
<HTML>
<HEAD><TITLE>Dunia unggulan - {PAGETITLE}</TITLE></HEAD>
<BODY BGCOLOR=TEKS HITAM=PUTIH>
<H1>{PAGETITLE</H1>
{KONTEN HALAMAN}
</BODI>
</HTML>
foo.tpl <!-- foo.tpl -->
Jelas tidak ada yang dilakukan. Silakan lihat {NAME}.
demo.php3 <?php
sertakan "kelas.FastTemplate.php3";
$tpl = FastTemplate baru( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));
$tpl->assign(NAME, "saya");
$tpl->assign(PAGETITLE, "Selamat datang!");
$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(UTAMA, "bilah");
$tpl->FastPrint(UTAMA);
?>
Membuat seluruh tabel Saya juga menulis contoh singkat untuk mendemonstrasikan cara membuat seluruh tabel dari templat satu baris. Efisien karena Anda tetap tidak perlu memodifikasi dokumen HTML secara langsung.
Kami membuat tabel HTML dengan menambahkan konten template ke nama unik yang sudah ditentukan. Ini dapat dilakukan dengan menelepon
Ketika $tpl->parse(), tambahkan "." sebelum nama templat untuk mencapai ini. <?php
// Tetapkan konten template foo ke TPL1
$tpl->parse(TPL1, "foo");
// Lampirkan konten bilah templat setelah TPL1
$tpl->mengurai(TPL1, ".bar");
?>
halaman.tpl
<HTML>
<HEAD><TITLE>Dunia unggulan - {PAGE_TITLE}</TITLE></HEAD>
<BODY BGCOLOR=TEKS HITAM=PUTIH>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</BODI>
</HTML>
tabel.tpl
<TABEL>
<TR> <TH>nama</TH> <TH>ukuran</TH> </TR>
{TABLE_ROWS}
</TABEL>
tabel_row.tpl
<TR>
<TD>{NAMA FILE</TD>
<TD>{UKURAN FILE</TD>
</TR>
yad.php3
<?php
sertakan "kelas.FastTemplate.php3";
fungsi InisialisasiTemplate() {
global $tpl;
$tpl = FastTemplate baru( ".");
$tpl->define( array( halaman => "halaman.tpl",
tabel => "tabel.tpl",
table_row => "table_row.tpl" ) );
}
fungsi BacaDirektori Saat Ini() {
global $tpl;
$pegangan = opendir( ".");
while($namafile = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, ukuran file($nama file));
$tpl->parse(TABLE_ROWS, ".table_row");
}
closeir($pegangan);
$tpl->parse(PAGE_CONTENT, "tabel");
}
fungsi Halaman Cetak($judul) {
global $tpl;
$tpl->menetapkan(PAGE_TITLE, $judul);
$tpl->parse(FINAL, "halaman");
$tpl->FastPrint(FINAL);
}
InisialisasiTemplate();
BacaDirektori Saat Ini();
Printpage("Demo Lain");
?>
Diskusi Kecepatan
"Oke," Anda mungkin berkata, "Bagus sekali. Tapi apakah itu tidak akan memengaruhi kecepatan situs saya?"
Tidak, situs Anda mungkin akan menjadi lebih cepat. Satu alasan sederhana: karena Anda sebagai programmer peduli dalam mendesain aplikasi dan menulis kode, kode Anda akan lebih efisien, menangani tugas yang sama dengan lebih mudah dan cepat. Jadi, Anda dapat menambahkan alasan lain ke daftar alasan yang tercantum di atas mengapa Anda harus mempertimbangkan untuk menggunakan FastTemplate dalam proyek Anda.
Jika Anda hanya ingin mengonversi situs web yang sudah ada, keberhasilan kinerjanya mungkin tidak diperhatikan. Saya sarankan menggunakan buffering regex di PHP, ini akan membantu dalam situasi ini. Karena FastTemplate menggunakan ekspresi reguler untuk setiap makro, setiap ekspresi reguler hanya akan dikompilasi satu kali dan dampak kecepatannya dapat diabaikan.