Qafas Zend Korp Tag View helper
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 ...



















































Linker automagic My ikkawżat fuq kwistjoni fil-kodiċi għall-XML hekk jekk jogħġbok jinjoraw dik il-kwistjoni:)
[...] L-oriġinali here: Evilprofessor.co.uk »Zend Qafas Korp Tag View helper Nru [...]
[...] Aktar mis-sors oriġinali: Evilprofessor.co.uk »Zend Qafas Korp Tag View helper Share u [...]