/html

Simple html element library

Primary LanguagePHP

HTML helper library

Build Status Version License Downloads

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>