Zend Framework Body Tag Vaata Helper
Kokkuvõte
Siin ma arutada loomist eesmärgiga helper muutmise HTML tags, täpsemalt keha sildid. Loodud eesmärgiga abistaja võimaldab funktsionaalsus sarnane peaga * / inlineScript vaatamiseks abilised juba standard Zend Framework vaatamiseks abilised, kuid võimaldab programmiline muutmine tag atribuute. Kindlasti vaadake demo lehe ja kood github.
Motivatsioon
Standard Zend Framework vaatamiseks abilised on suur hulk vahendeid sujuvamaks Ilmalik vaadata ülesanded ja võimaldades muutmise / lisamise skriptid ja header plokid (üldiselt peetud paigutus) seestpoolt vaadata kohaldamata kole hacks (st pea * / inlineScript vaatamiseks abilised).
Kui kord olen leidnud on vaja teha muudatusi <body> tag, näiteks lisades allalaadimine , klassi või style atribuut jne ma samuti olema võimelised täitma käesoleva seest teiste arvates abistajat. Võtke see järgmine kunstlik Näiteks ...
Veebilehel X, teatud leheküljed sisaldavad standard dojo vorme. Need dojo vormid toimuvad eesmärgiga abilised mugavamaks. Üldiselt on otsustatud mitte kanda dojo CSS klasside keha tag ja lisada ainult neid vajaduse korral. Seal võib-olla mitu vaatamiseks abilised lehel, mida on vaja lisada oma omistab keha tag. (Ma ütlesin seda oli kunstlik)
Kood on saadaval minu GIT hoidla @ github ja demoleht .
Kuidas see toimib
Kui loote keha tag vaatamiseks helper Peagi märkasin, et enamik kood ei ole nii konkreetne, et mida ma arendada nii et ma tõmmatud ühist funktsionaalsust abstraktne klass. Betoneerimise teel abstraktse klassi on võimalik muuta mis tahes sildi samamoodi nagu keha tag arutatud siin tegemist kood palju rohkem versitile.
All kapuuts (niiöelda) kood põhineb sellel, pea * ja inlineScript vaatamiseks abistajat. Ta kasutab Zend_View_Helper_Placeholder_Container_Standalone säilitada atribuudid ja nende väärtused kuni neid on vaja. Konteiner ise kasutab Zend_Registry salvestada väärtused all klahvi määratletud klassi (kui te vaatate ühikukatsed I selge registri sätestatakse pärast iga katset).
Kood sobiks hästi " Naked Zend_Layout ja Zend_View "koodi ma kirjutasin paar nädalat tagasi või osana standard Zend Framework MVC paigaldada.
Kasutus
Klass peaks olema väga lihtne kasutada. Esiteks kaks kandidaati, on vaja võtta oma paigutuse script järgmiselt:
<? Php echo $ this-> bodyTag ()?> <? Php echo $ this-> bodyTag () -> toString (Pro_View_Helper_AbstractTag: SULETUD)?>
Märkus: Sa pead muuta klassi nimi peaks liigutad vaatamiseks helper oma raamatukogu. Ilmselt konstant on saadaval rakendamise kaudu (bodyTag) kaudu, samuti abstraktne klass.
Näiteks teha muudatusi oma keha tag kasutades vaatamiseks abimees echo <body class="nihilo myclass" style="text-align-left; width: 80em"> on:
<? Php $ This-> bodyTag ("Klass", "nihilo) -> BodyTag ("stiil", "text-ühtlustada: vasak") -> BodyTag ("stiil", "laius: 80em", false, ';') -> BodyTag ("Klass", "myclass") ?>
Seda saab teha kogu vaade fail, mitmes vaatamiseks abilised ja paigutus failis (eeldusel tema enne keha silt on välja kirjutatud). Attributes saab eemaldada / ülekirjutamist samas väärtused võib lisada ja lisatud (eraldaja saab edasi). Kui sama atribuudi väärtus on möödunud mitu korda ainult ühes eksemplaris on kirjutatud atribuut.
Täielik demo kas kahvel github hoidla ja kestab demo.php fail oma brauseriga või teise külastada seda lehekülge näha seda tegevust. Usage of demo.php script eeldab olete Zend Autoloader (vms) juba setup.
Luua oma Tag helper
Et rakendada oma arvates helper lihtsalt laiendavad abstraktne tag klassi ja kirjuta järgmised klassi omadused:
- $ _regKey: Unikaalse tag (kasutatakse Zend_Registry)
- $ _validAttributes: Array kehtiv atribuutide nimed tuleb väiketähti järgimiseks W3C
- $ _selfClosing: Tõeväärtuse täpsustada, kui silt on ise sulgeda või mitte, nt <br/>
- $ _tagName: Nimi tag (st keha selles näites)
Niisiis, lõpuks kood bodyTag vaatamiseks abimees ise, oma väga kompaktne:
/ ** * Vaata abimees keha tag * * @ author Lloyd Watkin * @ alates 21/08/2010 * @ paketi Pro * @ subpackage ViewHelper * / class Pro_View_Helper_BodyTag laieneb Pro_View_Helper_AbstractTag {/ ** * Registry võti kohatäide * @ var string * / kaitstud $ _regKey = 'Pro_View_Helper_BodyTag "; / ** * Millised atribuudid on kehtiv * Praegu on vaid STF atribuudid toetatud * (S = range, T = ÜLEMINEKU-, F = raamigrupi) * @ vt http://www .w3schools.com/tags/tag_body.asp * @ var array * / kaitstud $ _validAttributes = array (/ * Standard Attributes * / 'klassi', 'dir "," id "," lang "," stiil "," pealkiri "," xml : lang ', / * Event Attributes * / "onclick", "ondblclick", "allalaadimine", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onkeydown" "onkeypress", "onkeyup", "onunload"); / ** * Self lõpusildi? * @ Var boolean * / kaitstud $ _selfClosing = false; / ** * Tag nimi * @ var string * / kaitstud $ _tagName = 'keha';}
Kui te võtate pilk hoidla seal on ka rühma ühikukatsed et täielikult katta funktsionaalsust. Ühikukatsed on kirjutatud PHPUnit ja on BodyTagTest.php faili.
Lõpuks ...
Siin ma olen teile näidanud minu rakendamise abstraktne tag abstraktne vaatamiseks helper (eek) ja oma keha tag rakendamist. Kuigi JavaScript funktsionaalsustest saab rakendada ka muul viisil (va kõva kodeeringut väljund aja järgi) muud asjad ei saa (ilma JavaScripti et on), muutmata teiste osade kohaldamist. Loodan, et leiate klasside abiks Teie taotlus ...



















































Minu automagic linker on põhjustanud kohta küsimus kood XML nii et palun ignoreerida seda küsimust:)
[...] Originaali siin: Evilprofessor.co.uk »Zend Framework Body Tag Vaata Helper nr [...]
[...] Edasi alates algsest allikas: Evilprofessor.co.uk »Zend Framework Body Tag Vaata Helper Jaga ja [...]