Zend Framework Tubuh Tag Lihat Helper

Dengan Watkin Lloyd Steven , Sabtu 21 Ogos 2010 23:13
Photo from  http://www.flickr.com/photos/daniello/

Foto dari http://www.flickr.com/photos/daniello/

Review

Di sini saya membahas kejadian penolong paparan untuk mengubahsuai tag HTML, dan lebih khusus lagi tag tubuh. Para penolong melihat diciptakan membolehkan fungsi mirip dengan kepala * / pembantu melihat inlineScript sudah dalam standard Zend Framework pembantu melihat, namun membolehkan pengubahsuaian program atribut tag. Pasti semak laman demo dan kod pada github.

Motivasi

The Zend Framework pembantu paparan standard adalah seperangkat besar alat untuk merampingkan tugas paparan biasa dan membolehkan untuk pengubahsuaian / penambahan script dan blok header (umumnya dipertahankan dalam tata letak) dari dalam melihat tanpa melaksanakan hacks jelek (iaitu kepala * / pembantu inlineScript view).

Setelah kesempatan saya telah menemui perlu membuat pengubahsuaian pada tag <body>, misalnya menambah onload , kelas, atau dll atribut style saya juga diminta untuk bisa melakukan ini dari dalam pembantu pandangan lain. Ambil contoh ini dibikin berikut ini ...

Di website X, halaman tertentu termasuk standard dojo bentuk. Bentuk-bentuk dojo diadakan dalam pembantu paparan untuk keselesaan. Umumnya telah memutuskan untuk tidak menyertakan dojo CSS kelas pada tag badan dan hanya menambahnya bila diperlukan. Ada beberapa pembantu mungkin melihat pada halaman yang perlu menambah atribut mereka sendiri untuk tag badan. (Saya bilang itu dibikin)

Kod terdapat di GIT saya repositori @ github dan laman demo .

Cara kerjanya

Apabila membuat tag badan penolong melihat saya akan menyedari bahawa sebahagian besar kod itu tidak khusus untuk apa yang saya berkembang jadi aku mengeluarkan fungsi-fungsi yang umum menjadi kelas abstrak. Dengan perkerasan kelas abstrak adalah mungkin untuk menukar tag apapun dalam cara yang sama seperti tag body dibincangkan di sini membuat kod lebih versitile.

Di bawah kap (sehingga untuk berbicara) kod didasarkan pada bahawa dari * kepala dan pembantu paparan inlineScript. Ini menggunakan Zend_View_Helper_Placeholder_Container_Standalone untuk menyimpan atribut dan nilai-nilai mereka, sehingga mereka diperlukan. Wadah itu sendiri menggunakan Zend_Registry untuk menyimpan nilai pada butang ditakrifkan dalam kelas (jika anda melihat unit ujian cara memadam registri ke bawah selepas ujian masing-masing).

Kod ini akan cocok dengan baik dengan " Zend_Layout Naked dan Zend_View "kod saya menulis tentang beberapa minggu yang lalu atau sebagai sebahagian daripada standard Zend Framework MVC memasang.

Global

Kelas harus sangat mudah digunakan. Pertama dua entri yang diperlukan dalam tata letak script anda sebagai berikut:

  <? Php echo $ this-> bodyTag ()?>
 <? Php echo $ this-> bodyTag () -> toString (Pro_View_Helper_AbstractTag:: CLOSE)?> 

Nota: Anda perlu menukar nama kelas anda perlu memindahkan penolong paparan ke perpustakaan anda sendiri. Jelas pemalar terdapat melalui pelaksanaan (bodyTag) serta melalui kelas abstrak.

Contoh membuat perubahan pada tag badan anda menggunakan pembantu pandangan untuk echo myclass "class =" nihilo <body style="text-align-left; width: 80em"> adalah:

  <? Php
 $ This-> bodyTag ('kelas', 'nihilo')
     -> BodyTag ('gaya', 'text-align: left')
     -> BodyTag ('gaya' 'width: 80em', false, ';')
     -> BodyTag ('kelas', 'KelasSaya')
 ?> 

Hal ini dapat dilakukan di seluruh fail paparan, dalam beberapa paparan pembantu, dan pada fail layout (yang disediakan sebelum tag badan ditulis keluar). Attribution boleh dihapuskan / ditimpa sedangkan nilai-nilai dapat ditambah dan ditambah (pemisah boleh disebarkan). Jika nilai atribut yang sama melewati beberapa kali hanya satu salinan ditulis dengan atribut.

Untuk demo penuh baik garpu github repositori dan menjalankan fail demo.php di browser sendiri anda, atau kunjungi laman ini untuk melihatnya dalam tindakan. Global demo.php script menganggap anda mempunyai AUTOLOADER Zend (atau serupa) sudah setup.

Membuat anda sendiri penolong Tag

Untuk melaksanakan penolong melihat sendiri anda hanya memperluaskan kelas tag abstrak dan menimpa hotel kelas berikut:

  • $ _regKey: Kunci unik untuk tag (digunakan untuk Zend_Registry)
  • $ _validAttributes: Sebuah array nama atribut yang sah, harus huruf kecil untuk memenuhi W3C
  • $ _selfClosing: Nilai Boolean untuk menentukan apakah tag menutup diri atau tidak, misalnya <br/>
  • _tagName $: Nama dari tag (tubuh iaitu dalam contoh ini)

Jadi, akhirnya kod untuk paparan penolong bodyTag itu sendiri, sangat kompak nya:

 / ** * Lihat penolong untuk tag body * * @ author Lloyd Watkin * @ sejak 21/08/2010 * @ pakej * Pro @ sub-pakej ViewHelper * / kelas Pro_View_Helper_BodyTag extends Pro_View_Helper_AbstractTag {/ ** * Registry kunci untuk placeholder * * @ * string var / dilindungi $ _regKey = 'Pro_View_Helper_BodyTag'; / ** * Yang atribut * * Saat ini hanya berlaku STF atribut disokong * (S = KETAT, T = PERALIHAN, F = Frameset) * * @ lihat http://www .w3schools.com/tags/tag_body.asp * @ * array var / dilindungi $ _validAttributes array = (/ * Standard * Attribution 'dir' 'kelas' /,, 'id', 'lang', 'gaya', 'judul ',' xml : lang ', / * Event Attribution * /' onclick ',' ondblclick ',' onload ',' onmousedown ',' onmousemove ',' title ',' onmouseover ',' onmouseup ',' onkeydown ', 'onkeypress', 'onkeyup', 'onunload',); / ** * Self tag penutup?  * * @ * Boolean var / _selfClosing $ dilindungi = false; / ** * nama * Tag * @ * string var / dilindungi $ _tagName 'tubuh' =;} 

Jika anda melihat di repositori ada juga sekumpulan unit test yang merangkumi fungsi tersebut. Ujian Unit ditulis dalam PHPUnit dan berada di BodyTagTest.php fail.

Akhirnya ...

Di sini saya telah menunjukkan anda pelaksanaan saya pembantu pandangan tag abstrak abstrak (EEK) dan pelaksanaan tubuhnya tag nya. Sementara fungsi javascript boleh dilaksanakan dengan cara lain (selain keras coding pada saat output) hal-hal lain boleh tidak (tanpa javascript itu) tanpa mengubah bahagian lain dari aplikasi. Saya berharap anda menemukan kelas membantu dalam aplikasi anda ...

3 Responses to "Zend Framework Badan Penolong Tag Lihat"

  1. linker Automagic saya telah menyebabkan isu dalam kod untuk XML jadi sila abaikan bahawa masalah:)

  2. [...] Asli di sini: Evilprofessor.co.uk »Zend Framework Tubuh Tag Lihat Penolong No [...]

  3. [...] Lebih dari sumber asalnya: Evilprofessor.co.uk »Zend Framework Tag Lihat Tubuh Pembantu Berbagi dan [...]

Tinggalkan Balasan













Panorama Tema oleh Themocracy

6 tetamu online sekarang
5 tetamu, 1 bot, 0 ahli
Max pengunjung hari ini: 23 jam 04:19 UTC
Bulan ini: 26 jam 2011/07/05 00:35 UTC
Tahun ini: 130 pada 28-03-2011 10:40 UTC
Sepanjang masa: 130 pada 28-03-2011 10:40 UTC