Zend Framework Body Tag megtekintése Helper

Által Steven Lloyd Watkin , szombat 21 augusztus 2010 11:13
Photo from  http://www.flickr.com/photos/daniello/

Fotó http://www.flickr.com/photos/daniello/

Összefoglaló

Itt megvitassák létrehozása céljából segítő módosító HTML, pontosabban szervezet címkéket. A létrehozott nézet segítő lehetővé teszi, hogy hasonló funkcionalitást, hogy a fej * / inlineScript érdekében segítők már szabványos Zend Framework véli segítők, de megengedi a programszerű módosítását tag attribútumok. Csekkold le a demo oldalt, és a kód GitHub.

Motiváció

A standard Zend Framework érdekében segítőket van egy nagy sor eszközök ésszerűsítése érdekében hétköznapi feladatokat és lehetővé teszi a módosítás / mellett a scriptek és a fejléc blokk (általánosan elfogadott az elrendezés) belül a nézetet alkalmazása nélkül csúnya csapkod (azaz a fej * / inlineScript megtekintéséhez segítők).

Amikor alkalommal találtam kell arra, hogy módosítsuk a <body> nevét, például hozzá egy onload , osztály, vagy stílus attribútum, stb Azt is szükséges, hogy képes elvégezni ezt a belülről másikban segítők. Vedd ezt követően konstruált példa ...

A weboldalon X, bizonyos oldalak lehetnek normál dojo formák. Ezek a dojo formák keretében tartott véli segítők a kényelem. Általában úgy határoztak, hogy nem tartalmazza a dojoban CSS osztályokat a szervezetben tag, és csak hozzá őket, ha szükséges. Ott talán több nézet segítők az oldalon, hogy kell hozzá saját attribútumokat a body tag. (Azt mondtam, hogy konstruált)

A kód elérhető a GIT adattárban @ GitHub és a demo oldalt .

Hogyan működik

Létrehozása során a szervezet tag véleménye segítő Hamar rájöttem, hogy a legtöbb kód nem volt jellemző, amit én a fejlődő úgyhogy elővettem a közös funkcionalitást egy absztrakt osztály. Által betonozás az absztrakt osztályban lehetőség van módosítani bármely tag ugyanúgy, mint a body tag tárgyalt itt, tehát a kód sokkal versitile.

Alatta a kapucni (hogy úgy mondjam) a kód alapján, hogy a fej * és a inlineScript nézet segítők. Ez használ Zend_View_Helper_Placeholder_Container_Standalone tárolja a tulajdonságok és az értékek, amíg szükség van rájuk. A konténer maga is Zend_Registry tárolni kulcs alatt szereplő érték meghatározása az osztályban (ha megnézzük a unit tesztek azt törölje a rendszerleíró le minden vizsgálat után).

A kód jól illeszkednek a " Meztelen Zend_Layout és Zend_View "kódot írtam pár héttel ezelőtt, vagy mint a normál Zend Framework MNV telepíteni.

Használata

Az osztály kell nagyon egyszerű a használata. Először két bejegyzés belül kötelesek az elrendezés szkript a következő:

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

Megjegyzés: meg kell változtatni az osztály nevét kell váltania a nézetet segítő a saját könyvtár. Természetesen az állandó rendelkezésre áll végrehajtása révén (bodyTag), valamint azáltal, az absztrakt osztály.

Egy példa, hogy megváltoztatja a szervezet címke segítségével a véleményen van, hogy segítő echo <body class="nihilo myclass" style="text-align-left; width: 80em"> van:

  <? Php
 $ This-> bodyTag ("osztály", "nihilo")
     -> BodyTag ('style', 'text-align: left)
     -> BodyTag ("stílusú", "szélessége: 80em", hamis, ";")
     -> BodyTag ("osztály", "MyClass")
 ?> 

Ezt meg lehet tenni az egész nézet fájl, több nézet segítők, és az elrendezés fájl (feltéve, hogy mielőtt a body tag ki kell írni). Attribútumok el lehet távolítani / felülírja miközben értékeket lehet adni, és csatolni (elválasztó átadhatók). Ha ugyanazt az attribútum értéke eltelt több alkalommal csak egy példányban van írva az attribútum.

A teljes demo vagy villát a GitHub adattár és futtassa a fájlt demo.php saját böngésző, vagy pedig látogasson el erre az oldalra látni működés közben. Szemléletes példa az demo.php szkript feltételezi, hogy a Zend Autoloader (vagy hasonló) már beállítás.

Saját Tag segítő

Ahhoz, hogy hajtsák végre a saját véleménye segítő egyszerűen kiterjesztik az elvont tag osztályt, és felülírja a következő osztály tulajdonságai:

  • $ _regKey: Az egyedi kulcs a tag (használt Zend_Registry)
  • $ _validAttributes: Egy sor érvényes attribútum nevek, kisbetűkkel kell írni ahhoz, hogy W3C
  • $ _selfClosing: Logikai érték meg, ha címke önzáró vagy nem, pl <br/>
  • $ _tagName: Neve a tag (azaz a szervezet ebben a példában)

Így végül a kódot a bodyTag véli segítő magát, annak nagyon kompakt:

  / **
  * Nézd meg a segítő szervezet címke
  *
  * @ Author Lloyd Watkin
  * @ Óta 21/08/2010
  * @ Csomag Pro
  * @ Subpackage ViewHelper
  * /
 osztály Pro_View_Helper_BodyTag
     kiterjeszti Pro_View_Helper_AbstractTag
 {
     / **
      * Registry kulcs helyőrző
      *
      * @ Var string
      * /
     protected $ _regKey = 'Pro_View_Helper_BodyTag';

     / **
      * Milyen tulajdonságok érvényesek
      *
      * Jelenleg csak STF attribútumok támogatott
      * (S = szigorú, T = ÁTMENETI, F = FRAMESET)
      *
      * @ Lásd http://www.w3schools.com/tags/tag_body.asp
      * @ Var tömb
      * /
     protected $ _validAttributes = array (
         / * Standard tulajdonságok * /
         "Osztály", "dir", "id", "lang", "stílusú", "title", " xml : lang ",
         / * Esemény tulajdonságok * /
         "Onclick", "ondblclick", "onload", "onMouseDown ',' onMouseMove",
         "Onmouseout ',' onmouseover ',' onMouseUp ',' onKeyDown ',' onKeyPress",
         "Onkeyup ',' onUnload",
     );

     / **
      * Saját záró tag?
      *
      * @ Var logikai
      * /
     protected $ _selfClosing = false;    

     / **
      * Tag neve
      *
      * @ Var string
      * /
     protected $ _tagName = 'test';
 } 

Ha megnézed a tárolóból van még egy csoport a unit tesztek, amely teljes mértékben fedezi a funkciót. Az egység tesztek írt PHPUnit és a BodyTagTest.php fájlban.

Végül ...

Itt már látható, ha az én végrehajtása absztrakt tag absztrakt segítő (EEK) és a body tag végrehajtását. Miközben a JavaScript funkciókat lehet megvalósítani más módon (kivéve a kemény kódolás a kimeneti idő szerint) más dolog nem tud (JavaScript nélkül, hogy a) megváltoztatása nélkül más részein a kérelmet. Remélem, megtalálja az osztályok hasznos az alkalmazás ...

3 Válasz-hoz "Zend Framework Body tag véleménye Helper"

  1. Steven Lloyd Watkin azt mondja:

    Én automatán linker okozott a kérdést a kódot, az XML ezért kérjük figyelmen kívül hagyni, hogy a kérdés:)

  2. [...] Az eredeti itt: Evilprofessor.co.uk »Zend Framework Body Tag megtekintése Helper-i [...]

  3. [...] Tovább az eredeti forrás: Evilprofessor.co.uk »Zend Framework Body Tag megtekintése Helper Részvény és [...]

Hagy egy Válaszol













Panoráma téma Themocracy

3 online látogató jelenleg
3 vendég, 0 botoktól, 0 tag
Max. látogatók ma: 9., 02:20 UTC
Ebben a hónapban: 26., 2011/07/05 12:35 UTC
Ebben az évben: 130 at 28-03-2011 22:40 UTC
Az összes idő: 130 at 28-03-2011 10:40 UTC