sandrokeil / html-element
Zend Framework view helper plugin to use html tags like objects and to render them.
Installs: 5 502
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 1
Requires
- php: ^7.0
- zendframework/zend-escaper: ^2.2 || ^3.0
- zendframework/zend-view: ^2.2 || ^3.0
Requires (Dev)
- container-interop/container-interop: ^1.1
- malukenho/docheader: ^0.1.4
- phpunit/phpunit: ^6.0
- sandrokeil/interop-config: ^2.1.0
- satooshi/php-coveralls: ^1.0
- squizlabs/php_codesniffer: ^3.0
Suggests
- sandrokeil/interop-config: ^2.1.0 for usage of provided factory (require PHP >= 7.1)
This package is auto-updated.
Last update: 2024-11-28 22:51:03 UTC
README
You want HTML tags as objects?
You want surefire generated HTML tags and HTML attributes?
You want to generate HTML tags on the fly?
This module comes to the rescue!
Zend Framework view helper plugin for generating HTML tags. Use HTML tags as objects and manipulate HTML attributes and values.
- Well tested. Besides unit tests and continuous integration/inspection this solution is also ready for production use.
- Great foundations. Based on Zend Framework and interop-config
- Every change is tracked. Want to know whats new? Take a look at CHANGELOG.md
- Listen to your ideas. Have a great idea? Bring your tested pull request or open a new issue. See CONTRIBUTING.md
Installation
Installation of this module uses Composer. For Composer documentation, please refer to getcomposer.org.
Put the following into your composer.json
{
"require": {
"sandrokeil/html-element": "^2.0"
}
}
Please register the HtmlElement
view helper to your Zend\View plugin manager.
You can use the Sake\HtmlElement\Service\HtmlElementFactory
factory if you install interop-config.
return [ 'view_helpers' => [ 'factories' => [ \Sake\HtmlElement\View\Helper\HtmlElement::class => \Sake\HtmlElement\Service\HtmlElementFactory::class, ], ], ];
Documentation
The usage is easy. Here is an example how to use the view helper
<?php // assume we are in a template echo $this->html('div', 'my content', array('id' => 'content', 'class' => 'box shadow')); // or $div = $this->html('div'); echo $div->setText('my content') ->setAttributes(array('id' => 'content', 'class' => 'box shadow')); // to render HTML you can use echo $div->enableHtml(true) ->setText( $this->html('p')->setText('Hello World!')->appendClass('welcome'); ); // or echo $this->html( 'div', $this->html('p')->setText('Hello World!')->appendClass('welcome'), array('id' => 'content', 'class' => 'box shadow'), true );
Performance tweaks
The default behaviour of HtmlElement is maximum security. But if you have thousands of HTML tags it could be slow. If your HTML attributes are not from user input, you can disable escaping of HTML attributes to increase performance. You can also disable escaping of text to unleash the beast. ;-) This is simply done by adding the following lines to your config file, but keep security in mind.
<?php return array( 'sake_htmlelement' => array( 'view_helper' => array( 'default' => array( 'escapeHtmlAttribute' => false, 'escapeText' => false, ), ), ), // other module config stuff );