Zend Framework Body Tag View Helper
Yfirlit
Hér ég fjalla um sköpun af a skoða hjálpar til að breyta HTML tags, og sérstaklega líkama tags. Að skapa sýn hjálpar leyfir virkni svipað * höfuð / inlineScript skoða framreiðslu þegar í staðlinum Zend Framework skoða framreiðslu, en gerir programmatic breytingar eiginleika tag. Ákveðið kíkja demo síðu og kóðinn á GitHub.
Hvatning
Hið staðlaða Zend Framework skoða framreiðslu eru góð verkfæri til hagræðingar hversdagsleg verkefni að skoða og tekið er tillit til breytingar / viðbót skrifta og haus blokkir (almennt haldin í útliti) innan skoða án þess að beita ljót járnsög (þ.e. höfuð * / inlineScript skoða aðstoðarmenn).
Þegar tilefni ég hef fundið þörf til að gera breytingar á <body> tag, til dæmis að bæta onload , stétt eða stíl eiginleiki o.þ.h. Ég þarf einnig að vera fær um að framkvæma þetta innan frá öðrum framreiðslu skoða. Taktu þetta eftirfarandi háttuð dæmi ...
Á X heimasíðu, síður eru ákveðnar staðlaðar Dojo form. Þessar Dojo form eru haldnir innan framreiðslu skoða fyrir þægindi. Almennt hefur verið ákveðið að fela Dojo CSS flokka í líkamanum merki og bara bætt við þeim þegar þörf krefur. Það kannski nokkrir skoða framreiðslu á síðunni sem þarf að bæta eiginleika þeirra eiga að líkamanum tag. (Ég sagði að það var háttuð)
Kóðinn er í boði í GIT minn geymsla @ GitHub og kynningu síðu .
Hvernig þetta virkar
Þegar skapa tag líkama skoða hjálp ég áttaði mig fljótt að flestir númerið var ekki sérstaklega við það sem ég var að þróa svo ég dreginn út sameiginlega virkni í ágrip bekknum. Með því að steypa ágrip bekk það er hægt að breyta einhverju tag á sama hátt og líkaminn tag rædd hér að gera kóðann miklu meira versitile.
Undir hetta (ef svo má segja) kóðinn er byggt á því að höfuð * og inlineScript framreiðslu útsýni. Það fylgir Zend_View_Helper_Placeholder_Container_Standalone að geyma eiginleika og gildi fyrr en þeir eru nauðsynleg. Ílátið sjálft notar Zend_Registry að geyma gildi undir takkanum skilgreind í bekknum (ef þú horfir á eining próf ég hreinsa skrásetning niður eftir hverja prófun).
Kóðinn myndi passa vel með " Naked Zend_Layout og Zend_View "kóðann sem ég skrifaði um nokkrar vikur síðan eða sem hluti af stöðluðu Zend Framework MVC setja í embætti.
Notkun
Bekknum ætti að vera mjög einfalt í notkun. Í fyrsta lagi tveimur færslum er krafist innan handrit skipulag sem hér segir:
<? PHP echo $ this-> bodyTag ()?> <? PHP echo $ this-> bodyTag () -> toString (Pro_View_Helper_AbstractTag:: CLOSE)?>
Ath: Þú þarft að breyta bekknum nafni ættir þú að færa það í huga hjálpar til að eiga bókasafnið þitt. Vitanlega er stöðug í gegnum framkvæmd (bodyTag) sem og í gegnum abstrakt bekknum.
Dæmi um að gera breytingar á líkama tag þinni með það í huga hjálpar til echo <body myclass" class="nihilo style="text-align-left; width: 80em"> er:
<? PHP $ This-> bodyTag ('bekknum', 'nihilo') -> BodyTag ('stíl', 'Texti-align: vinstri') -> BodyTag ('stíl' breidd: 80em ',, rangar ",') -> BodyTag ('Class', 'myclass') ?>
Þetta má gera gegnum skoða skrána, í nokkrum framreiðslu skoða, og í skipulag skrá (enda hennar fyrir líkamanum tag er skrifuð út). Eiginleika er hægt að fjarlægja / plága gildi á meðan getur verið bætt við og aftast (skilju má framhjá). Ef sama gildi eiginleika er framhjá nokkrum sinnum aðeins eitt eintak er skrifað með eiginleiki.
Fyrir fullt kynningu annaðhvort gaffal á GitHub geymsla og keyra demo.php skrá í vafranum þínum eigin, eða að öðrum kosti heimsækja þessa síðu til að sjá það í aðgerð. Notkun á demo.php handrit gert ráð fyrir að þú hafir Zend Autoloader (eða svipað) þegar skipulag.
Búa til eigin Tag hjálpar þínum
Til að útfæra eigin augum hjálpar einfaldlega framlengja ágrip tag bekknum og skrifa eftirfarandi eiginleika bekknum:
- $ _regKey: Einstakt lykill fyrir the merkimiði (notað Zend_Registry)
- $ _validAttributes: An array gild nöfn eiginleiki ætti að vera lágstafir til að fara með W3C
- $ _selfClosing: Boolean gildi til að tilgreina hvort merkið er sjálf lokun eða ekki, td <br/>
- $ _tagName: Nafn tag (þ.e. stofnun í þessu dæmi)
Svo að lokum númerið fyrir bodyTag skoða hjálpar sjálft, mjög samningur þess:
/ ** * View hjálpar fyrir líkamann tag * * @ höfundur Lloyd Watkin * @ síðan 21/08/2010 * @ pakka Pro * @ subpackage ViewHelper * / flokkur Pro_View_Helper_BodyTag nær Pro_View_Helper_AbstractTag {/ ** * Registry lykill fyrir staðgenglinum * * @ var strengur * / varið $ _regKey 'Pro_View_Helper_BodyTag' =, / ** * Hvaða eiginleikar eru gild * * augnablikinu aðeins STF eiginleika stuðningsmaður * (S = ströng, T = BRÁÐABIRGÐA, F = frameset) * * @ sjá http://www .w3schools.com/tags/tag_body.asp * @ var array * / varið $ _validAttributes = array (/ * Standard eigindir * 'dir' bekknum '/,,' id ',' lang ',' stíl ',' Titill ',' XML : lang ", / * Event eigindir * / 'onClick', 'ondblclick', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onMouseOver', 'onmouseup', 'onkeydown', 'onkeypress', 'onkeyup', 'onunload',), / ** * Self lokunarstaki? * * @ Var Boolean * / varið $ _selfClosing = false; / ** * Tag Nafn * * @ var streng * / varið $ _tagName 'líkama' =;}
Ef þú taka a líta á the geymsla þar er einnig hópur af prófum einingu að fullu ná virkni. The eining próf eru skrifaðar í PHPUnit og eru í BodyTagTest.php skrá.
Loksins ...
Hér ég hef sýnt þér framkvæmd minn ágrip tag ágrip skoða hjálp (eek) og líkama tag framkvæmd hennar. Meðan javascript virkni getur verið hrint í framkvæmd með öðrum hætti (öðrum en harður erfðaskrá þegar framleiðsla) annars er ekki hægt (án JavaScript sem er) án þess að breyta öðrum hlutum umsóknarinnar. Ég vona að þú finnir bekkjum gagnlegt í umsókn þína ...



















































automagic linker minn hefur valdið á blað í kóðanum fyrir XML svo vinsamlegast hunsa þessi mál:)
[...] Upprunalega hér: Evilprofessor.co.uk »Zend Framework Body Tag View Helper No [...]
[...] Fleiri frá the frumeintak uppspretta: Evilprofessor.co.uk »Zend Framework Body Tag View Helper Hluti og [...]