A very simple HTML 5 generation library.
This library is installable via Composer:
composer require brick/html
This library requires PHP 7.1 or later.
This library is still under development.
The current releases are numbered 0.x.y
. When a non-breaking change is introduced (adding new methods, optimizing existing code, etc.), y
is incremented.
When a breaking change is introduced, a new 0.x
version cycle is always started.
It is therefore safe to lock your project to a given release cycle, such as 0.1.*
.
If you need to upgrade to a newer release cycle, check the release history for a list of changes introduced by each further 0.x.0
version.
This library contains a single class, Tag
, that represents an HTML tag. You construct a Tag
using a tag name:
use Brick\Html\Tag;
$div = new Tag('div');
You can pass an optional associative array of attributes to the constructor:
$div = new Tag('div', [
'id' => 'main',
'class' => 'block',
]);
Or you can set attributes later:
$tag->setAttributes([
'id' => 'main',
'class' => 'block',
]);
Or:
$tag->setAttribute('id', 'main')
->setAttribute('class', 'block');
You can also remove attributes:
$tag->removeAttribute('id');
You can set the content of a Tag
, provided that it's not a void tag such as <br>
, <input>
, etc.
If you try to modify the content of a void tag, you'll get a LogicException
.
You can set or append a plain text content:
$tag->setTextContent('Hello, world!');
$tag->appendTextContent("\nWhat's up?");
Or set/append a HTML content:
$tag->setHtmlContent('Hello, <b>world!</b>');
$tag->appendHtmlContent("<br>What's up?");
You can also append another Tag
:
$tag->append($otherTag);
You can remove the content of a Tag
:
$tag->empty();
You can check if a Tag
has an empty content:
$tag->isEmpty(); // boolean
You can render a tag by using its render()
method, or just by casting it to string:
echo $tag; // will output something like: <div id="main">Hello, world!</div>
All texts (attributes, content) are expected to be valid UTF-8.