Shape is a way to generate valid HTML by using functions.

HTML Language called Shape where you write code to make HTML. We can define the client-side image map using HTML Shape. Using this method, you can output HTML elements with PHP.


Put a composer.json file at the root of your project, containing your project dependencies. Do this by running the following command in IDE terminal:

composer require tina4stack/tina4php-shape 

Basic usage

Each HTML tag has an opening underscore prefix, HTML tag element and a closing underscore prefix (e.g. the paragraph tag is <p>. Using HTML Shape the convention would be different as we can write it out as _p()

Normal Tag

Here's an example of a normal paragraph tag using the HTML Shape method:


require_once "vendor/autoload.php";

echo _p("Hello"); //-->this will be output as <p>Hello</p> . We stipulated what the content must be.

Tag with Attributes

Here's an example of a div and attribute tag using the HTML Shape method:


require_once "vendor/autoload.php";

echo _div(["class" => "form-group"], "Testing"); //-->this will be output as <div class="form-group">Testing</div>. We first stipulate the class, thereafter we stipulated what the content must be. 

Nesting of tags

If you think of unordered lists or select tags, somethings can become easier to code due to nesting.


require_once "vendor/autoload.php";

$lis = []; //--> stipulate an array of items

$lis[] = _li("One"); //--> List item 1
$lis[] = _li("Two"); //--> List item 1

$ul = _ul ($lis);

$options = [];

$options[] = _option("One");
$options[] = _option("Two");

$select = _select (["name" => "choose"], $options);

Finding a tag by id

You can manipulate a tag's content by targeting the tags id attribute:


$tag = $html->byId("someId"); //-->The id tag that you want to search for and manipulate. 

Set the HTML of a tag

You can change the HTML tag type using the following convention:


require_once "vendor/autoload.php";

$tag->html(_p("Changed HTML")); //-->Target the tag you want to manipulate


require_once "vendor/autoload.php";

//Start some HTML

$lis = [];

$lis[] = _li("One");
$lis[] = _li("Two");

$ul = _ul ($lis);

$html = _shape(
    _html(["lang" => "en"],
        _h1(["id" => "someId"],"Hello World! H1"),
        _h2("Hello World! H2"),
        $a = _h3("Hello World! H3"),
        _h4("Hello World! H4"),
        _h5("Hello World! H5"),

$a->html(_b(["style" => "color: red"],"Hello"));


echo $html;

This will be the results:


Hello World! H2


Hello World! H4

Hello World! H5

* One
* Two

Powered by ComboStrap