mirror of
https://github.com/smarty-php/smarty.git
synced 2025-11-15 15:09:51 +01:00
95 lines
4.7 KiB
XML
95 lines
4.7 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision$ -->
|
|
<preface id="preface">
|
|
<title>Kata Pengantar</title>
|
|
<para>
|
|
Tidak diragukan lagi salah satu pertanyaan yang paling sering diajukan
|
|
pada milis PHP: bagaimana saya membuat naskah PHP independen terhadap
|
|
tata letak? Sementara PHP dihitung sebagai "bahasa penaskahan melekat HTML",
|
|
setelah menulis beberapa proyek yang mencampur PHP dan HTML secara bebas,
|
|
datanglah satu ide yang memisahkan formulir dan isis adalah Good Thing [TM].
|
|
Sebagai tambahan, dalam banyak perusahaan aturan pendesain tata letak dan
|
|
pemrogram adalah terpisah. Konsekuensinya, pencarian solusi templating
|
|
terjadi kemudian.
|
|
</para>
|
|
<para>
|
|
Dalam perusahaan kami contohnya, pengembangan aplikasi terjadi
|
|
sebagai berikut: Setelah peryaratan dokumen selesai, pendesain
|
|
interface membuat maket interface dan memberikannya ke pemrogram.
|
|
Pemrogram mengimplementasikan logika bisnis dalam PHP dan menggunakan
|
|
maket interface untuk membuat rangka template. Proyek kemudian diserahkan
|
|
ke pendesain HTML/ata letak halaman web, orang tang membawa template
|
|
sampai penuh dengan kemegahan. Proyek mungkin bolak-balik diantara
|
|
pemrogram/HTML beberapa kali. Selanjutnya, adalah penting untuk mempunyai
|
|
dukungan template karena pemrogram tidak ingin melakukan hal yang
|
|
berkaitan dengan HTML dan tidan ingin pendesain HTML memaketkannya dengan
|
|
kode PHP. Pendesain memerlukan dukungan untuk file konfigurasi, blok
|
|
dinamis dan hal lain yang berkenaan dengan interface, tapi mereka tidak
|
|
harus berhadapan dengan kerumitan bahasa pemrograman PHP.
|
|
</para>
|
|
<para>
|
|
Melihat di banyaknya solusi template untuk PHP hari ini, kebanyakan
|
|
darinya menyediakan cara yang belum sempurna atas penggantian variabel
|
|
ke dalam template dan melakukan bentuk terbatas dari fungsionalitas blok
|
|
dinamis. Tapi kebutuhan kita memerlukan sedikit lebih banyak dari itu.
|
|
Kami tidak menginginkan pemrogram untuk berurusan dengan tata letak HTML
|
|
SAMA SEKALI, tapi ini hampir tidak bisa dihindari. Sebagai contoh, jika
|
|
pendesain menginginkan warna latar belakang untuk berubah pada blok
|
|
dinamis, ini harus dikerjakan dengan pemrogram terlebih dulu. Kami juga
|
|
membutuhkan pendesain untuk bisa menggunakan file konfigurasinya sendiri,
|
|
dan menarik variabel darinya ke dalam template. Daftar terus bertambah.
|
|
</para>
|
|
<para>
|
|
Kami mulai menulis spesifikasi untuk mesin template di akhir 1999.
|
|
Setelah menyelesaikan spesifikasi, kami mulai bekerja pada mesin template
|
|
yang ditulis dalam C yang dengan harapan dapat diterima untuk disertakan
|
|
dengan PHP. Kami tidak hanya mengalami teknis yang kompleks, tapi juga
|
|
ada debat panas mengenai apa yang harus dilakukan dan tidak oleh mesin
|
|
template . Dari pengalaman ini, kami memutuskan bahwa mesin template
|
|
harus ditulis dalam PHP sebagai kelas, agar setiap orang menggunakannya
|
|
bila sesuai. Maka kami menulis mesin yang tidak hanya itu dan
|
|
<productname>SmartTemplate</productname> memperlihatkan keberadaannya
|
|
(catatan: kelas ini tidak pernah dikirimkan untuk umum). Ia adalah kelas
|
|
yang mengerjakan hampir apapun yang kami inginkan: substitusi variabel
|
|
reguler, didukung termasuk template lain, integrasi dengan file
|
|
konfigurasi, melekatkan kode PHP, fungsionalitas pernyataan 'if' terbatas
|
|
dan blok dinamis lebih stabil yang dapat diperbanyak secara berulang. Ia
|
|
melakukan ini semua dengan ekspresi reguler dan kode diubah menjadi,
|
|
harus kami katakan, bisa dipahami. Ia juga tercatat lambat dalam aplikasi
|
|
besar dari semua penguraian dan ekspresi reguler mengerjakannya harus
|
|
melakukannya untuk setiap permintaan. Masalah terbesar dari sudut pandang
|
|
pemrogram adalah semua pekerjaan yang perlu dalam naskah PHP untuk
|
|
menyiapkan dan memproses template dan blok dimasis. Bagaimana kami membuat
|
|
ini lebih mudah?
|
|
</para>
|
|
<para>
|
|
Lalu datanglah bayangan atas apa yang secara utama menjadi Smarty. Kami
|
|
mengtahui seberapa cepat kode PHP tanpa melebihkan penguraian template.
|
|
Kami juga mengetahui bagaimana teliti dan memaksanya bahasa PHP terlihat
|
|
bagi umumnya pendesain, dan ini bisa diatasi dengan sintaks template yang
|
|
lebih sederhana. Lalu bagaimana jika kami menggabungkan dua kekuatan?
|
|
Selanjutnya, Smarty dilahirkan... :-)
|
|
</para>
|
|
</preface>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"../../../../manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|