HTTP/1.0 200 OK Accept-Ranges: none Content-Location: http://www.evilprofessor.co.uk/311-zend-framework-body-tag-view-helper/ Content-Type: text/html; charset=UTF-8 Date: Sat, 11 Jun 2011 05:12:02 GMT X-Frame-Options: ALLOWALL Set-Cookie: PREF=ID=532e985eaf03a2bc:TM=1307769122:LM=1307769122:S=dQkgZ_T0XnLT2jkj; expires=Mon, 10-Jun-2013 05:12:02 GMT; path=/; domain=translate.googleusercontent.com X-Content-Type-Options: nosniff Server: translation Expires: Sat, 11 Jun 2011 05:12:02 GMT Cache-Control: private Evilprofessor.co.uk »Zend Korp Qafas Tag View helper

Qafas Zend Korp Tag View helper

Permezz Watkin Lloyd Steven , is-Sibt 21 Awi 2010 11:13
Photo from  http://www.flickr.com/photos/daniello/

Ritratt mill http://www.flickr.com/photos/daniello/

Sommarju

Hawnhekk I jiddiskutu l-ħolqien ta 'helper ħsieb għall-modifika HTML tags, u aktar speċifikament tags ġisem. L-helper ħsieb maħluqa jippermetti funzjonalità simili għad-ras * fehma inlineScript helpers / diġà fl-istandard Zend Qafas helpers ħsieb, iżda tippermetti l-modifika programmatika ta 'attributi tikketta. Żgur li jiċċekkjaw il-paġna demo u l-kodiċi fuq GitHub.

Motivazzjoni

Il-helpers Zend standard għan ta 'Qafas huma sett kbir ta' għodod għar-razzjonalizzazzjoni kompiti ħsieb mundane u tippermetti għall-modifika / żieda ta 'skripts u blokki header (ġeneralment miżmuma fit-taqsim) minn ġewwa l-fehma mingħajr l-applikazzjoni hacks ikrah (jiġifieri l-ras * / inlineScript helpers opinjoni).

Fuq okkażjoni I sabu ħtieġa li jsiru modifiki għal l-tikketta <body>, per eżempju żieda ta ' onload , klassi, jew stil attribut eċċ I meħtieġ ukoll li tkun tista 'twettaq dan minn ġewwa helpers ħsieb oħra. Ħu din eżempju artifiċjali li ġejjin ...

Fuq il-websajt X, ċerti paġni jinkludu standard dojo formoli. Dawn il-formoli dojo huma miżmuma fi ħdan helpers ħsieb għall-konvenjenza. Ġeneralment ġie deċiż li ma tinkludix l-dojo CSS klassijiet fil-tikketta ġisem biss u żid magħhom meta jkun meħtieġ. Hemm diversi ħsieb helpers forsi fuq il-paġna li jeħtieġ li jżidu l-attributi tagħhom stess għall-tikketta korp. (I qal li kien artifiċjali)

Il-kodiċi huwa disponibbli fil GIT tiegħi repożitorju @ GitHub u l- paġna demo .

Kif taħdem

Meta jkun qed jinħoloq il-korp tikketta ħsieb helper I malajr induna li ħafna mill-kodiċi ma kienx speċifiku għal dak I kien qed jiżviluppaw so I ġbidt l-funzjonalità komuni fi klassi astratt. Permezz konkrit il-klassi astratt huwa possibbli li jimmodifika kull tikketta fl-istess mod bħall-tikketta korp diskussi hawnhekk jagħmlu l-kodiċi ħafna aktar versitile.

Taht il-barnuża (biex ngħidu hekk) il-kodiċi hija bbażata fuq dik ta 'l-* ras u l-helpers fehma inlineScript. Hija tutilizza Zend_View_Helper_Placeholder_Container_Standalone biex jaħżnu l-attributi u l-valuri tagħhom sakemm huma meħtieġa. Il-kontenitur innifsu juża Zend_Registry biex jaħżnu l-valuri taħt il ewlenin definiti fil-klassi (jekk inti tħares lejn l -unità testijiet I ċar-reġistru stabbiliti wara kull test).

Il-kodiċi ikun jaqbel ħafna mal-" Zend_Layout Naked u Zend_View "kodiċi I kiteb dwar ftit ġimgħat ilu jew bħala parti ta 'l-Zend Qafas standard MVC tinstalla.

Usage

Il-klassi għandha tkun sempliċi ħafna sabiex tintuża. L-ewwelnett żewġ daħliet huma meħtieġa fi ħdan iskrittura tqassim tiegħek kif ġej:

  <? PHP eku $ dan il-> bodyTag ()?>
 <? PHP eku $ dan il-> bodyTag () -> toString (Pro_View_Helper_AbstractTag:: QRIB)?> 

Nota: Int ser ikollok bżonn li jinbidel isem ta 'klassi għandu inti tmur il-helper ħsieb li librerija tiegħek. Ovvjament l-kostanti hija disponibbli permezz ta 'l-implimentazzjoni (bodyTag) kif ukoll permezz tal-klassi astratt.

Eżempju li jsiru tibdiliet lil korp tag tiegħek billi tuża l-helper ħsieb li eku myclass" <body class="nihilo style="text-align-left; width: 80em"> huwa:

  <? PHP
 $ Dan il-> bodyTag ("klassi", "nihilo")
     - BodyTag> ("stil", "fit-test tallinja: xellug")
     - BodyTag> ("stil" "wisa ': 80em",, falza, ";")
     - BodyTag> ("klassi", "myclass")
 ?> 

Dan jista 'jsir matul il-fajl fehma, helpers ħsieb diversi, u fil-fajl tqassim (sakemm tagħha quddiem il-lametta tal-ġisem huwa miktub). Attributi tista 'jitneħħa / valuri filwaqt li fuqhom jistgħu jiġu miżjuda u mehmuż (separatur tistax tiġi mgħoddija). Jekk il-valur attribwit istess huwa mgħoddi diversi drabi biss kopja waħda hija miktuba ma 'l-attribut.

Għal demo sħiħa jew furketta l GitHub repożitorju run u l-fajl demo.php fil-browser tiegħek, jew alternattivament żur din il-paġna biex tara li fl-azzjoni. Użu ta 'l- demo.php iskrittura jassumi inti għandek l-Autoloader Zend (jew simili) diġà setup.

Noħolqu helper tiegħek Tag

Biex timplimenta helper tiegħek fehma tagħha stess sempliċiment jestendi l-klassi tag astratt u jissostitwixxu l-proprjetajiet klassi li ġejja:

  • $ _regKey: A ċavetta unika għall-tikketta (użat għall Zend_Registry)
  • $ _validAttributes: L-firxa ta 'ismijiet attribut validi, għandhom ikunu zghar biex jikkonformaw ma' W3C
  • $ _selfClosing: Valur Boolean biex tispeċifika jekk tikketta hija l-għeluq awto jew le, eż <br/>
  • $ _tagName: Isem tal-lametta (korp jiġifieri f'dan l-eżempju)

Allura, fl-aħħarnett il-kodiċi għall-helper fehma bodyTag innifsu, kompatti ħafna tiegħu:

 / ** * Helper View għall-tag korp * * @ awtur Lloyd Watkin * @ peress 21/08/2010 * @ pakkett * Pro @ subpackage ViewHelper * / klassi Pro_View_Helper_BodyTag testendi Pro_View_Helper_AbstractTag {/ ** * ewlieni Reġistru għall placeholder * * @ * string var / protetti $ _regKey "Pro_View_Helper_BodyTag" =; / ** * Liema attributi huma validi * * Attwalment hija biss STF attributi appoġġjati * (S = QRIB, T = TRANSITORJI, F = frameset) * * @ ara http:// * .w3schools.com/tags/tag_body.asp @ * firxa var / protetti $ _validAttributes = array (/ * Attributi * Standard "dir" "klassi" /,, "id", "lang", "stil", "it-titolu "," xml : lang ", / * * Avveniment Attributi /" "onclick", ondblclick "," onload "," onmousedown "," onmousemove "," onmouseout "," onmouseover "," onmouseup "," onkeydown ", "onkeypress", "onkeyup", "onunload",); / ** * Awto għeluq tag?  * * @ * Boolean var / protetti _selfClosing $ = foloz; / ** * Isem Tag * * @ * string var / protetti $ _tagName "korp" =;} 

Jekk inti tagħti ħarsa lejn l-repożitorju hemm ukoll grupp ta 'testijiet unità li jkopru kompletament l-funzjonalità. It-testijiet l-unità huma miktuba fl PHPUnit u huma fl- BodyTagTest.php fajl.

Fl-aħħarnett ...

Hawnhekk stajt murija inti implimentazzjoni tiegħi ta 'helper tag ħsieb astratt astratt (EEK) u l-implimentazzjoni tagħha tag ġisem. Filwaqt li l-funzjonalità JavaScript tista 'tiġi implimentata b'modi oħra (għajr iebes kodifikazzjoni fil-ħin output) affarijiet oħra ma jistax (mingħajr JavaScript li hija) mingħajr ma tinbidel partijiet oħra tal-applikazzjoni. Nispera li ssibu l-klassijiet ta 'għajnuna fl-applikazzjoni tiegħek ...

3 Responses to "Zend Korp Qafas Tag View helper"

  1. Linker automagic My ikkawżat fuq kwistjoni fil-kodiċi għall-XML hekk jekk jogħġbok jinjoraw dik il-kwistjoni:)

  2. [...] L-oriġinali here: Evilprofessor.co.uk »Zend Qafas Korp Tag View helper Nru [...]

  3. [...] Aktar mis-sors oriġinali: Evilprofessor.co.uk »Zend Qafas Korp Tag View helper Share u [...]

Leave a Reply













Tema Panorama minn Themocracy

5 viżitaturi online issa
3 mistednin, 2 bot, 0 membri
viżitaturi llum Max: 20 fil-04:58 UTC
Dan ix-xahar: 22 fi 2011/08/06 12:30 UTC
Din is-sena: pm UTC 130 fil 28-03-2011 10:40
Il-ħin kollu: pm UTC 130 fil 28-03-2011 10:40