HTML helper library
This library is a PHP helper library for creating HTML output.
Install
This extension can be installed using Composer
composer require netzmacht/html:^3.0
Requirements
PHP ^8.1
Basic Usage
Define the attributes in the View:
Attributes
$attributes = new Netzmacht\Html\Attributes();
$attributes
->setId('a_id')
->addClass('a_class')
->setAttribute('data-target', '#some');
This library uses the magic __toString
to converts the helper objects to string. Outputting is really simple now:
<div <?= $attributes; ?>><span class="label">Label</span> This is a paragraph.</div>
Of course you can change the attributes before generating
<div <?= $attributes->setId('second')->removeClass('a_class')->addClass('new_class'); ?>>the content</div>
Elements
Of course you can create the whole element as well. The library knows about standalone html elements which can't have any children and nodes which have children. Notice that the css classes are passed as array.
$factory = new Netzmacht\Html\Factory\ElementFactory();
$paragraph = $factory->create('p', array('id' => 'a_id', 'class' => array('description'));
$label = $factory->create('span');
$label
->addClass('label')
->addChild('Label this');
$paragraph
->addChild('This is a paragraph.')
->addChild(' '); // add space between both elements
->addChild($label, Netzmacht\Html\Element\Node::POSITION_FIRST); // add at first position
Now you can output the whole element:
<article>
<?= $paragraph; ?>
</article>