Yii mengijinkan pengembang untuk menggunakan sintaks template favorit sendiri (misalnya Prado, Smarty) untuk menulis controller atau tampilan widget. Ini dilakukan dengan menulis dan menginstalasi komponen aplikasi viewRenderer. Pembuat tampilan mengintersepsi penyertaan CBaseController::renderFile, sesuai dengan file tampilan dengan sintaks template yang dikustomisasi, dan menampilkan hasil kompilasi.
Info: Direkomendasikan untuk menggunakan sintaks template dikustomisasi hanya saat menulis tampilan yang jarang dipakai ulang. Jika tidak, orang yang menggunakan kembali tampilan akan dipaksa untuk memakai sintaks template dikustomisasi yang sama dalam aplikasinya.
Berikutnya kami perkenalkan bagaimana menggunakan CPradoViewRenderer, pembuat tampilan yang mengijinkan para pengembang untuk memakai sintaks template mirip dengan Prado framework. Bagi orang yang ingin mengembangkan pembuat tampilan sendiri, CPradoViewRenderer adalah referensi yang baik.
CPradoViewRenderer
¶Untuk menggunakan CPradoViewRenderer, kita cukup mengkonfigurasi aplikasi seperti berikut:
return array(
'components'=>array(
......,
'viewRenderer'=>array(
'class'=>'CPradoViewRenderer',
),
),
);
Secara default, CPradoViewRenderer akan mengkompilasi file sumber tampilan dan menyimpan file hasil PHP di bawah direktori runtime. Hanya saat file sumber tampilan diubah, file PHP akan dibuat ulang. Oleh karenanya, menggunakan CPradoViewRenderer hanya menyebabkan sedikit degradasi kinerja.
Tip: Karena CPradoViewRenderer memperkenalkan beberapa tag template baru agar penulisan tampilan lebih mudah dan lebih cepat, Anda masih bisa menulis kode PHP seperti biasa dalam sumber tampilan.
Berikutnya kami perkenalkan tag template yang didukung oleh CPradoViewRenderer.
Tag PHP pendek adalah jalan pintas untuk menulis ekspresi dan pernyataan PHP dalam sebuah
tampilan. Tag ekspresi <%= expression %>
diterjemahkan ke dalam
<?php echo expression ?>
; sementara tag pernyataan <% statement
%>
menjadi <?php statement ?>
. Sebagai contoh,
<%= CHtml::textField($name,'value'); %>
<% foreach($models as $model): %>
diubah menjadi
echo CHtml::textField($name,'value'); foreach($models as $model):
Tag komponen dipakai untuk menyisipkan widget dalam tampilan. Ia menggunakan sintaks berikut:
<com:WidgetClass property1=value1 property2=value2 ...>
// konten untuk widget
</com:WidgetClass>
// widget tanpa konten
<com:WidgetClass property1=value1 property2=value2 .../>
di mana WidgetClass
menetapkan nama kelas widget atau kelas alias
path, dan nilai awal properti bisa berupa
string bertanda kutip atau ekspresi PHP berkurung di dalam pasangan kurung kurawal.
Sebagai contoh,
<com:CCaptcha captchaAction="captcha" showRefreshButton={false} />
akan diubah menjadi
$this->widget('CCaptcha', array( 'captchaAction'=>'captcha', 'showRefreshButton'=>false));
Catatan: Nilai
showRefreshButton
ditetapkan sebagai{false}
alih-alih"false"
karena "false" berarti string daripada boolean.
Tag cache adalah jalan pintas menggunakan cache fragmen. Sintaksnya seperti berikut,
<cache:fragmentID property1=value1 property2=value2 ...>
// content being cached
</cache:fragmentID >
di mana fragmentID
harus berupa pembeda yang secara unik mengidentifikasi
konten yang sedang di-cache, dan pasangan properti-nilai dipakai untuk mengkonfigurasi
cache fragmen. Sebagai contoh,
<cache:profile duration={3600}>
// informasi profil pengguna di sini
</cache:profile >
akan diubah menjadi
if($this->beginCache('profile', array('duration'=>3600))): // informasi profil pengguna di sini $this->endCache(); endif;
Seperti tag cache, tag clip adalah jalan pintas untuk memanggil CBaseController::beginClip dan CBaseController::endClip dalam tampilan. Sintaksnya adalah sebagai berikut,
<clip:clipID>
// konten untuk klip ini
</clip:clipID >
di mana clipID
adalah pembeda yang secara unik mengidentifikasi konten klik.
Tag clip akan diubah menjadi
$this->beginClip('clipID'); // konten untuk klip ini $this->endClip();
Tag komentar dipakai untuk menulis komentar tampilan yang hanya terlihat bagi pengembang. Tag komentar akan dihilangkan saat tampilan diperlihatkan ke pengguna akhir. Sintaks untuk tag komentar adalah sebagai berkut,
<!---
komentar tampilan yang akan dibuang
--->
Mulai dari versi 1.1.2, dimungkinkan untuk menggabungkan penggunaan beberapa
sintaks alternatif template dengan sintaks PHP normal. Untuk melakukannya, properti
CViewRenderer::fileExtension yang terinstalasi pada pe-render view harus dikonfigurasi
dengan sebuah nilai selain .php
. Misalnya, jika properti di-set sebagai .tpl
, maka setiap
view yang berakhiran .tpl
akan di-render dengan menggunakan pe-render view yang terinstalasi,
sedangkan file view lain yang berextension .php
akan dianggap sebagai skrip view PHP biasa.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.