Zend Рамковниот тело Tag Погледни Helper
Резиме
Еве јас се разговара за создавање на цел помошник за модифицирање на HTML тагови, и поконкретно тело тагови. Создадената видите помошник овозможува функционалност слична на глава * / inlineScript видите помагачи веќе во стандардниот Zend Рамковниот видите помагачи, туку им овозможува на програмски модификација на тагот атрибути. Дефинитивно проверете на страницата демо и кодот на github.
Мотивација
Стандардот Zend Рамковниот видите помошници се голем сет на алатки за рационализирање световниот поглед задачи и овозможувајќи за модификација / додавање на скрипти и заглавието блокови (обично се одржуваат во билансна шема) во рамките на поглед, без примена на грди хакове (т.е. шефот * / inlineScript видите помагачи).
По повод Најдов потреба да правиме промени на <body> таг, на пример, додавање на onload , класа, или стил атрибут итн, исто така, бара да бидат способни да ја извршат оваа од рамките на други поглед помагачи. Земи го ова по смислена пример ...
На веб-сајтот Х, некои страници се стандардни клуб форми. Овие форми доџо се одржуваат во поглед помагачи за практичност. Генерално тоа е решено да не го вклучи клубот CSS класи во телото таг и само да ги додадам кога е потребно. Има можеби неколку видите помагачи на оваа страница дека треба да додадете свои атрибути на тагот тело. (Реков дека е измислена)
Во кодот е достапна во мојата ГИТ складиштето @ github и демо страница .
Како работи
При создавањето на телото таг видите помошник Јас набрзо сфати дека најголемиот дел од кодот не беше на она што е во развој, па јас ја извади заедничка функционалност во апстрактна класа. Со бетонирање на апстрактната класа е можно да се менува секој таг на ист начин како што телото таг дискутира тука што го кодот versitile многу повеќе.
Под хаубата (така да се каже) го кодот е врз основа на кои на главата * и inlineScript видите помагачи. Се користи за чување на Zend_View_Helper_Placeholder_Container_Standalone атрибути и нивните вредности се додека не се задолжителни. Самиот сад користи Zend_Registry за чување на вредности под клуч дефинирана во класата (ако се погледне на единица тестови јас го исчистите регистарот надолу по секој тест).
Кодот би се вклопиле во добро со " Гол Zend_Layout и Zend_View "Кодот сум го напишала за неколку недели или како дел од стандардната Zend Рамковниот MVC инсталирате.
Употреба
Класата треба да биде многу едноставен за употреба. Прво два записи кои се потребни во вашиот распоред скрипта како што следува:
<? Php echo $ ова-> bodyTag ()?> <? Php echo $ ова-> bodyTag () -> toString (Pro_View_Helper_AbstractTag:: Затвори)?>
Забелешка: Ќе треба да се промени името на класата треба да се движат погледот помошник на вашата библиотека. Очигледно е дека постојано е на располагање преку имплементација (bodyTag), како и преку апстрактни класа.
Еден пример за правење на промени во вашето тело со користење на тагот видите Помошникот за ехо <body class="nihilo myclass" style="text-align-left; width: 80em"> е:
<? Php $ Ова-> bodyTag ('класа', 'nihilo) -> BodyTag ('стил', 'текст-align: лево) -> BodyTag ('стил', 'width: 80em', лажно, ';') -> BodyTag ('класа', 'myclass') ?>
Ова може да се направи во текот на видите фајл, погледни во неколку помагачи, а во датотеката за распоред (под нејзиното пред тело е испишана ознака). Атрибути можат да се отстранат / презапишување додека вредности може да се додаде и додава (сепаратор може да се пренесат). Ако истата вредноста на атрибутот е донесен неколку пати само еден примерок е напишана со атрибут.
За целосен демо или крак github складиштето и извршете ја demo.php фајл во свој прелистувач, или алтернативно, посетете ја оваа страница за да ја видите во акција. Користење на demo.php сценарио претпоставува дека имате на Zend Autoloader (или сличен) веќе поставување.
Креирање на свој Tag помошник
За да се имплементира свој поглед помошник едноставно се прошири на апстрактната ознака класа и поклопите следнава класа својства:
- $ _regKey: А единствен клуч за таг (кој се користи за Zend_Registry)
- $ _validAttributes: Низа на валидни атрибут имиња, треба да се мали за да се усогласат со W3C
- $ _selfClosing: Булова вредност да се прецизира дали таг е само затворање или не, на пример, <br/>
- $ _tagName: Име на тагот (т.е. тело во овој пример)
Значи, конечно го кодот за bodyTag видите помошник себе, своите многу компактна:
/ ** * Види помошник за телото таг * * @ author Лојд Watkin * @ бидејќи 21/08/2010 * @ пакет Про * @ subpackage ViewHelper * / класа Pro_View_Helper_BodyTag протега Pro_View_Helper_AbstractTag {/ ** * Регистар клуч за случаеви * * @ var низа * / заштитени $ _regKey = 'Pro_View_Helper_BodyTag'; / ** * Кои атрибути се важи * * Во моментов само STF атрибути поддржани * (S = СТРОГИОТ, Т = ПРЕОДНИ, F = frameset) * * @ гледаат http://www .w3schools.com/tags/tag_body.asp * @ var низа * / заштитени $ _validAttributes = array (/ * Стандарден атрибути * 'реж' / 'класа', 'id', 'lang', 'стил', 'Наслов ',' xml : lang ', / * Настан атрибути * /' OnClick ',' ondblclick ',' onload ',' onmousedown ',' onmousemove ',' onmouseout ',' onmouseover ',' onmouseup ',' onkeydown ', "onkeypress ',' onkeyup ',' onunload ',); / ** * самоуправа затворање на тагот? * * @ Var логичка * / заштитени $ _selfClosing = false; / ** * * * Tag име @ var низа * / заштитени $ _tagName = "телото";}
Ако се погледне на складиштето има, исто така, група од единицата тестови кои целосно покривање на функционалноста. Единицата тестови се напишани во PHPUnit и се во BodyTagTest.php датотека.
Конечно ...
Еве сум ти ми покажа имплементација на апстрактен таг апстрактен видите помошник (eek) и неговото тело таг имплементација. Додека го вклучите Javascript-функционалност може да се спроведе и на други начини (освен тешко кодирање на излез време) други работи не можат (без javascript дека е), без промена на други делови на апликацијата. Се надевам дека ќе најдете корисни класи во вашата апликација ...



















































Мојот automagic линкерот предизвика во врска со прашањето во кодот за XML затоа ве молам игнорирајте тоа прашање:)
[...] На оригиналот тука: Evilprofessor.co.uk »Zend Рамковниот тело Tag Погледни Helper Не [...]
[...] Повеќе од оригиналниот извор: Evilprofessor.co.uk »Zend Рамковниот тело Tag Погледни Helper Сподели и [...]