# Класс TagHelper

В предыдущих уроках мы с вами делали классы, каждый из которых был предназначен для создания множества объектов. Давайте теперь потренируемся делать классы, представляющие собой набор методов для решения некоторой задачи.

Сделаем, к примеру, класс `TagHelper`, с помощью которого можно будет создавать HTML теги:

`<?php class TagHelper { public function open($name, $attrs = []) { $attrsStr = $this->getAttrsStr($attrs); return "<$name$attrsStr>"; } public function close($name) { return "</$name>"; } // Формируем строку с атрибутами: private function getAttrsStr($attrs) { if (!empty($attrs)) { $result = ''; foreach ($attrs as $name => $value) { if ($value === true) { $result .= " $name"; } else { $result .= " $name=\"$value\""; } } return $result; } else { return ''; } } } ?>`

Воспользуемся нашим классом, к примеру, для того, чтобы сделать тег div с текстом:

`<?php $th = new TagHelper(); echo $th->open('div') . 'text' . $th->close('div'); // <div>text</div> ?>`

А теперь используем наш класс для создания формы:

`<?php $th = new TagHelper(); echo $th->open('form', ['action' => 'test.php', 'method' => 'GET']); echo $th->open('input', ['name' => 'year']); echo $th->open('input', ['type' => 'submit']); echo $th->close('form'); ?>`

В результате получится следующий HTML код:

`<form action="test.php" method="GET"> <input name="year"> <input type="submit"> </form>`

Самостоятельно, не подсматривая в мой код, реализуйте описанный класс `Tag`.

Добавьте в класс `Tag` метод `show`, одновременно создающий открывающий и закрывающий теги, а также текст между ними. Метод должен принимать параметром имя тега и текст.

←→
↑