Smarty

Software screenshot:
Smarty
Rincian Software:
Versi: 3.1.5
Tanggal Upload: 11 May 15
Lisensi: Gratis
Popularitas: 1

Rating: nan/5 (Total Votes: 0)

Smarty sebenarnya tidak ada "Template Engine", itu akan lebih tepat disebut sebagai "Template / Kerangka Presentasi." Artinya, ia menyediakan programmer dan desainer template yang dengan kekayaan alat untuk mengotomatisasi tugas-tugas umum ditangani di lapisan presentasi aplikasi a. Saya menekankan Framework kata karena Smarty bukan mesin template tag-menggantikan sederhana. Meskipun dapat digunakan untuk suatu tujuan yang sederhana, fokusnya adalah pada pengembangan cepat dan tanpa rasa sakit dan penyebaran aplikasi Anda, sambil mempertahankan kinerja tinggi, skalabilitas, keamanan dan pertumbuhan di masa depan.
Begitu juga Smarty tepat bagi Anda? Apa yang turun adalah menggunakan alat yang tepat untuk pekerjaan itu. Jika Anda ingin pengganti variabel sederhana, Anda mungkin ingin melihat sesuatu yang sederhana atau bahkan roll sendiri. Jika Anda ingin kerangka template yang kuat dengan berbagai alat untuk membantu Anda sebagai aplikasi Anda berkembang ke masa depan, Smarty mungkin pilihan yang baik.
Mengapa menggunakannya?
Salah satu Smartys tujuan desain utama adalah untuk memfasilitasi pemisahan kode aplikasi dari presentasi. Biasanya, kode aplikasi berisi logika bisnis aplikasi Anda, yang ditulis dan dipelihara dalam kode PHP. Kode ini dikelola oleh programmer. Presentasi adalah cara konten Anda disajikan kepada pengguna akhir, yang ditulis dan dipelihara dalam file template. Template dikelola oleh desainer template.
Pada fungsi yang paling dasar, kode aplikasi mengumpulkan konten, memberikan ke mesin template dan menampilkannya. Konten mungkin sesuatu seperti judul, tagline, penulis dan tubuh dari artikel koran. Kode aplikasi tidak memiliki kekhawatiran bagaimana konten ini akan disajikan dalam template. Desainer template bertanggung jawab untuk presentasi. Mereka mengedit file template, menambahkan markup dan membawanya sampai selesai. Ini biasanya melibatkan hal-hal seperti tag HTML, cascading style sheets dan alat-alat lain yang disediakan oleh mesin template.
Paradigma ini melayani beberapa tujuan:
) Desainer tidak bisa memecahkan kode aplikasi. Mereka dapat mengacaukan template semua yang mereka inginkan, tetapi kode tetap utuh. Kode akan ketat, lebih aman dan lebih mudah untuk mempertahankan.
) Kesalahan dalam template terbatas pada Smartys rutinitas penanganan kesalahan, membuat mereka yang sederhana dan intuitif mungkin untuk desainer.
) Dengan presentasi pada lapisan sendiri, desainer dapat memodifikasi atau benar-benar mendesain ulang dari awal, semua tanpa intervensi dari programmer.
) Programmer tidak bermain-main dengan template. Mereka bisa pergi tentang menjaga kode aplikasi, mengubah cara konten diperoleh, membuat aturan bisnis baru, dll tanpa mengganggu lapisan presentasi.
) Template adalah representasi dekat apa hasil akhir akan, yang merupakan pendekatan intuitif. Desainer tidak peduli bagaimana konten harus template. Jika Anda memiliki data yang asing dalam template seperti pernyataan SQL, ini membuka risiko melanggar kode aplikasi oleh kecelakaan penghapusan atau perubahan oleh desainer.
) Anda tidak membuka server Anda untuk eksekusi kode PHP yang sewenang-wenang. Smarty memiliki banyak fitur keamanan yang dibangun di desainer sehingga tidak akan melanggar keamanan, baik disengaja atau tidak disengaja. Mereka hanya bisa melakukan apa yang mereka terbatas dalam template.
Meskipun kode aplikasi terpisah dari presentasi, ini tidak berarti logika yang terpisah. Kode aplikasi jelas memiliki logika, tapi template mungkin memiliki logika berdasarkan kondisi bahwa untuk presentasi saja. Misalnya, jika desainer ingin alternatif tabel warna baris atau huruf besar beberapa konten yang ditugaskan, mereka bisa. Ini adalah logika presentasi, sesuatu programmer tidak harus peduli dengan. Seberapa sering Anda memiliki beberapa presentasi yang ditampilkan dalam satu kolom dan kemudian Anda ingin dalam dua atau tiga kolom, sehingga kode aplikasi perlu menyesuaikan untuk mengakomodasi ini? Pendekatan yang lebih baik adalah untuk menetapkan konten dalam satu array tunggal dan membiarkan template menangani presentasi. Ini akan mempermudah aplikasi Anda dan menjaga template fleksibel. Smarty memasok alat untuk menangani situasi seperti ini.
Ini tidak berarti bahwa Smarty mencegah Anda dari menempatkan logika aplikasi dalam template, Anda harus memiliki sedikit disiplin diri. Berikut adalah contoh dari embedding logika bisnis dalam template (yang tepat, menghindari melakukan hal ini jika mungkin):
{If $ smarty.session.user dan ($ user_type eq "Editor" atau $ user_type eq "admin")}
edit
{/ If}
Logika memeriksa apakah pengguna login dan mereka baik editor atau administrator, maka mereka diizinkan untuk mengedit ini sehingga mengedit kotak centang muncul. Itu adalah logika yang termasuk dalam kode aplikasi. Template tidak peduli tentang apa kredensial pengguna ini memiliki, hanya perlu tahu apakah kotak edit ditampilkan atau tidak! Jadi mari kita lihat pendekatan yang lebih cocok:
{If $ edit_flag}
edit
{/ If}
Terserah programmer aplikasi untuk menetapkan $ edit_flag, sederhana dan mudah dipahami variabel dalam template. Dengan cara ini template tidak lagi mengandalkan struktur data yang mendasari Anda. Jika format struktur data sesi pernah berubah, tidak ada yang perlu disesuaikan dalam template.
Sekarang mari kita melihat beberapa hal yang dapat Anda lakukan dengan Smarty. Satu hal yang dapat dilakukan adalah fungsi kustom. Ini adalah tag dalam template yang mengeksekusi tugas tertentu. Contoh:
{File html_image = "masthead.gif"}
Di sini kita memiliki fungsi yang disebut "html_image". Fungsi ini mengambil gambar yang diberikan dalam "file" atribut dan melakukan semua pekerjaan yang diperlukan untuk datang dengan kode HTML berikut:

Fungsi gambar melakukan tugas mencari tahu tinggi dan lebar dan memasok bendera perbatasan default. Tentu saja Anda hanya bisa menggunakan tag HTML statis dalam template sebaliknya, tapi ini menunjukkan bagaimana fungsi kustom dapat dimanfaatkan untuk menyederhanakan tugas yang sangat umum. Perancang dapat fokus pada desain dan kurang pada hal-hal teknis. Selain itu, jika desainer memutuskan untuk mampir gambar ukuran kepala surat yang berbeda, template tidak perlu penyesuaian.
html_image adalah fungsi yang datang dengan Smarty. Anda juga dapat membuat fungsi kustom Anda sendiri. Berikut contoh lain dari apa yang mungkin terlihat seperti:
{Type html_link = "Artikel" id = "abc123" text = "Api mengeluarkan Hotel"}
Ini menggunakan fungsi kustom yang disebut "html_link". Muncul dengan kode HTML berikut:
Api mengeluarkan Hotel
Apa ini capai? Untuk satu, desainer tidak perlu khawatir dengan format URL untuk sebuah artikel. Dengan URL keras-kode, apa yang terjadi jika suatu hari programmer memutuskan untuk membersihkan hal-hal, dan mengubah sintaks URL dari /display_article.php?id=abc123 ke / ART / ABC123? Kami harus mengedit setiap template dengan URL artikel. Ini hanyalah contoh lain bagaimana fungsi template dapat membuat template lebih mudah untuk mempertahankan.
Sekarang untuk sedikit di programmer dan template. Sebelumnya telah disebutkan bahwa programmer tidak peduli untuk apa template dengan konten. Pada tingkat konseptual ini benar, tetapi di dunia nyata Anda tidak akan mengharapkan desainer template untuk harus membangun semua template dari udara tipis. Setelah semua, logika bisnis tidak menentukan konten apa yang ditugaskan untuk template. Jadi, programmer akan biasanya pemasangan kerangka template untuk desainer untuk memulai dengan. Hal ini biasanya mengandung unsur-unsur baku seperti variabel konten dan bagian loop, dan mungkin beberapa tag markup sederhana sehingga mereka tidak mulai dengan konten dalam kekacauan besar. Berikut adalah contoh dari kerangka template yang loop melalui daftar artikel dan menampilkannya dalam sebuah tabel:


{Nama bagian = seni lingkaran = $ artikel}


{/ Section}
{$ artikel [art] .headline}
{$ artikel [art] .date}
{$ artikel [art] .author}

Output mungkin terlihat seperti ini:







Bagaimana barat dimenangkan
2 Desember 1999
John Wayne
Team kehilangan, Pelatih berhenti
Feb 2, 2002
John Smith
Gourmet Cooking
Jan 23, 1954
Betty Crocker

Sekarang untuk beberapa pertanyaan umum:
Mengapa menggunakan template sama sekali? Apa yang begitu sulit tentang menulis Bukannya {$ title}?
Membuat segalanya lebih mudah untuk membaca bukanlah tujuan desain, tetapi lebih dari efek samping. Menggunakan template memiliki manfaat besar, banyak yang telah dijelaskan di atas. Karena kita berada dalam lingkungan Template lagian, {$ title} kurang asing dari , Terutama ketika Anda mulai melihat itu di halaman panjang konten, jadi itu cukup jelas bahwa sintaks sederhana membantu untuk membuat template mudah dibaca dan memelihara.
Template mengambil waktu untuk mengurai, membuat aplikasi jauh lebih lambat.
Itu mungkin benar dalam beberapa kasus, tetapi dengan Smarty itu tidak lebih lambat dari mengeksekusi script PHP. Pada eksekusi pertama template, Smarty mengkonversi file template ke dalam script PHP (disebut Template kompilasi.) Setelah itu, script PHP hanya disertakan. Pasangan ini dengan akselerator PHP dan Anda benar-benar memiliki lingkungan template cepat dengan overhead minimal.
Smarty terlalu rumit, bagaimana bisa secepat itu?
Inti Smarty adalah cukup ramping mengingat apa yang mampu. Sebagian besar fungsi terletak pada plugin. Arsitektur plugin dirancang sehingga hanya plugin yang diperlukan dimuat pada permintaan. Dengan kerangka ini, menambahkan bahkan ratusan plugin baru tidak akan mempengaruhi kinerja. Hal ini membuat Smarty cepat, terukur dan fleksibel.
Smarty juga memiliki fitur caching yang dinamis bisa menyegarkan dan menjaga bagian-bagian dari halaman uncached di keinginan Anda. Caching menyimpan output dari template terkompilasi, menghemat kebutuhan untuk mengeksekusi mereka di setiap doa.
Semua ini berbicara tentang akselerator, bagaimana Smarty berjalan tanpa satu?
Sebenarnya itu berjalan cukup baik tanpa satu. Smarty tidak memerlukan akselerator, tetapi template file sendiri akan mengambil keuntungan dari satu, sesuatu yang unik untuk Smarty (AFAIK). Jika Anda tidak memiliki akselerator, eksekusi template tidak secepat tetapi tidak lambat dengan cara apapun karena mereka tidak diurai! Anda juga mempertahankan semua manfaat dan fitur dari Smarty lainnya. Juga, karena akselerator yang tersedia secara bebas tidak benar-benar alasan untuk tidak menggunakan salah satu. Mereka akan membantu kinerja dengan semua aplikasi PHP, menggunakan Smarty atau tidak.
Bagaimana bisa lebih mudah untuk mempertahankan?
Beberapa hal tidak dapat dijelaskan, tapi hanya mengalami. Manfaat dari pemisahan logika aplikasi dari presentasi tidak dapat ditekankan cukup. Smarty juga memiliki beberapa fitur penanganan kesalahan bagus dan built-in debugging konsol sehingga Anda dapat melihat hirarki Template dan ditugaskan variabel sekilas. Menambahkan fitur kustom untuk Smarty semudah menjatuhkan mereka di direktori Plugin dan menyebutkan mereka dalam template.
tag template tidak berbasis XML, Editor saya tidak menyukainya.
The {} pembatas hanya default, mereka mudah untuk membedakan antara tag HTML. Jika Anda tidak menyukai mereka, mengubah pembatas Anda atau mungkin sesuatu yang lebih XMLish seperti Ada juga banyak kontribusi pengguna untuk Dreamweaver dan sejenisnya, memberi mereka tampilan di daerah kontrib.
Itu Smarty singkatnya, mudah-mudahan Anda dapat menambahkannya ke gudang Anda alat untuk membangun aplikasi web. Untuk benar-benar belajar lebih lanjut, baca atas petunjuk ke bawah, bergabung dengan forum dan melihat apa yang orang bicarakan

Fitur :.

  • Caching: Smarty menyediakan fitur caching halus untuk caching semua atau bagian dari halaman web yang diberikan, atau meninggalkan bagian uncached. Programmer dapat mendaftar fungsi template sebagai disimpan di cache atau non-cachable, halaman cache kelompok dalam unit logis manajemen lebih mudah, dll.
  • File Konfigurasi: Smarty dapat menetapkan variabel ditarik dari file konfigurasi. Desainer template dapat mempertahankan nilai-nilai umum untuk beberapa template di satu lokasi tanpa intervensi dari programmer, dan variabel config dapat dengan mudah dibagi antara pemrograman dan presentasi bagian dari aplikasi.
  • Security: Template tidak mengandung kode PHP. Oleh karena itu, seorang desainer template tidak mengeluarkan dengan kekuatan penuh PHP, tetapi hanya bagian dari fungsi yang tersedia untuk mereka dari programmer (kode aplikasi.)
  • Mudah Digunakan dan Menjaga: desainer halaman Web tidak berurusan dengan sintaks kode PHP, tetapi sintaks template yang mudah digunakan tidak jauh berbeda dari HTML biasa. Template adalah representasi sangat dekat dari hasil akhir, secara dramatis memperpendek siklus desain.
  • Pengubah Variabel: Isi variabel ditugaskan dapat dengan mudah disesuaikan pada layar-waktu dengan pengubah, seperti menampilkan semua huruf besar, html-melarikan diri, format tanggal, truncating blok teks, menambahkan spasi antara karakter, dll Lagi , ini dicapai tanpa intervensi dari programmer.
  • Template Fungsi: Banyak fungsi yang tersedia untuk desainer template untuk menangani tugas-tugas seperti menghasilkan segmen kode HTML (dropdown, tabel, pop-up, dll), menampilkan konten dari template lain in-line, perulangan lebih dari array dari konten , format teks untuk output e-mail, bersepeda meskipun warna, dll.
  • Filter:. Programmer memiliki kontrol penuh dari output template dan konten template yang dikompilasi dengan pra-filter, pasca-filter dan output-filter
  • Sumber:. Template dapat ditarik dari sejumlah sumber dengan menciptakan penangan sumber daya baru, kemudian menggunakan mereka dalam template
  • Plugins: Hampir setiap aspek Smarty dikendalikan melalui penggunaan plugin. Mereka umumnya semudah menjatuhkan mereka ke dalam direktori Plugin dan kemudian menyebutkan mereka dalam template atau menggunakan mereka dalam kode aplikasi. Banyak kontribusi user-komunitas juga tersedia. (Lihat plugin bagian dari forum dan wiki.)
  • Add-ons: Banyak user-komunitas kontribusi Pengaya yang tersedia seperti Pagination, Validasi Form, Drop Down Menu, Calander Tanggal pemetik, dll Alat-alat ini membantu mempercepat siklus pengembangan, tidak ada kebutuhan untuk kembali menciptakan roda atau debug kode yang sudah stabil dan siap untuk penyebaran. (Lihat bagian Pengaya dari forum dan wiki.)
  • Debugging:. Smarty datang dengan
  • built-in debugging konsol sehingga desainer template bisa melihat semua variabel yang ditetapkan dan programmer dapat menyelidiki kecepatan Template render
  • Kompilasi:. Smarty mengkompilasi template ke dalam kode PHP belakang layar, menghilangkan parsing run-time dari template
  • Kinerja: Smarty melakukan dengan sangat baik, meskipun set fitur yang luas. Sebagian besar kemampuan Smarty terletak pada plugin yang dimuat on-demand. Smarty dilengkapi dengan berbagai alat-alat presentasi, meminimalkan kode aplikasi Anda dan menghasilkan lebih cepat, kurang rawan kesalahan aplikasi pengembangan / penyebaran. Smarty template mendapatkan disusun untuk PHP file internal (sekali), menghilangkan mahal scan file template dan memanfaatkan kecepatan PHP op-kode akselerator.

Apa yang baru dalam rilis ini:

  • memulihkan perubahan akses yang super global, dan bukan mengandalkan pada USE_SUPER_GLOBALS untuk keamanan

Apa yang baru dalam versi 2.6.23:

  • backticks jalur dari {} matematika persamaan (mohrt)
  • kesalahan lemparan saat template ada tapi tidak terbaca (mohrt)

Apa yang baru dalam versi 2.6.22:

  • Rilis ini membahas masalah yang dihadapi dengan Smarty 2.6 .21 rilis dan bug mesin PCRE di PHP 5.2. Metode chaining telah dihapus untuk menghindari bug. Metode chaining akan muncul kembali di Smarty 3.

Perangkat lunak lain dari pengembang New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Komentar untuk Smarty

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!