html - Write PHP, get HTML
html is a small, simple library for HTML markup creation,
inspired by Elm., (*1)
Html::article(["class" => "chapter"], [
Html::header([
Html::h1(["class" => "chapter__heading"],
["Welcome!"]
),
]),
Html::div(
[
"class" => "chapter__body",
"style" => ["text-transform" => "uppercase"]
],
["Lorem ipsum dolor sit amet"]
)
])
How does it work?
Each HTML element is available as a static method on Html, along with
the arbitrary methods Html::element and Html::emptyElement., (*2)
Both Html::element and Html::emptyElement take a tag name,
followed by attributes. Non-empty elements take a list of children, as well.
Everything gets passed in as arrays, both attributes and children.
Child elements are recursively rendered, and attributes are rendered according
to a predefined ruleset., (*3)
The default ruleset is the standard HTML attribute
format, attribute="value".
There are also formats defined for style, sizes and srcset., (*4)
Installation
Clone repo, download and unpackage the files, or
install via Composer. The package is available
as lysande/html., (*5)
In the future
- Allow elements to define children, without attributes
- React-/JSX-like
true/false for boolean attributes
- Declare singular children without arrays