Класс Tag
Сейчас мы с вами сделаем класс Tag
для упрощения работы с HTML тегами. Имея
такой класс мы, вместо того, чтобы набирать
HTML теги вручную, будем использовать для
этого PHP.
На самом деле выигрыша в длине кода мы не получим, но сможем динамически формировать теги по определенным условиям, что пригодится нам для решения более сложных задач. Давайте приступим к реализации, а саму выгоду такого класса вы поймете в процессе работы над кодом, либо в следующих уроках, когда мы будем применять наш класс.
Приступим к реализации
Итак, наш класс называется Tag
- это
неспроста. Каждый объект этого класса будет
представлять собой отдельный тег, с которым
мы будем производить определенные операции.
Давайте будем передавать имя создаваемого
тега в конструктор объекта и записывать в
приватное свойство $name
:
<?php
class Tag
{
private $name; // свойство для хранения имени тега
public function __construct($name)
{
$this->name = $name;
}
}
?>
Сделаем с помощью нашего класса, к примеру,
объект для тега <input>
(пока на
экран ничего не выведется):
<?php
$input = new Tag('input');
?>
Пока мы просто получили объект с инпутом. Давайте добавим еще метод, с помощью которого мы будем выводить тег на экран.
Здесь следует иметь ввиду то, что теги бывают
открывающие, например, <div>
, и
закрывающие, например, </div>
. Некоторые
теги не имеют закрывающего тега, например,
<input>
или <img>
.
Давайте для начала сделаем метод open
,
который будет только открывать тег (в случае
с инпутами больше никакой метод и не понадобится,
так как они не требуют закрытия).
Итак, реализуем:
<?php
class Tag
{
private $name;
public function __construct($name)
{
$this->name = $name;
}
// Выводим открывающую часть тега:
public function open()
{
$name = $this->name;
return "<$name>";
}
}
?>
Давайте проверим работу нашего метода:
<?php
$tag = new Tag('input');
echo $tag->open(); // выведет <input>
?>
Запустите этот код, и в окне браузера действительно
появится инпут. Чтобы посмотреть исходный HTML код,
в окне браузера можно будет нажать комбинацию
клавиш Ctrl+U
- там вы увидите код нашего инпута.
Открытый исходный код можно обновлять, будто обычную страницу браузера. Вы можете менять ваш PHP код и сразу проверять изменения HTML кода, отправляемого в браузер.
Давайте теперь сделаем метод close
для закрывающей части тега:
<?php
class Tag
{
private $name;
public function __construct($name)
{
$this->name = $name;
}
public function open()
{
$name = $this->name;
return "<$name>";
}
// Выводим закрывающую часть тега:
public function close()
{
$name = $this->name;
return "</$name>";
}
}
?>
Воспользуемся этим методом:
<?php
$tag = new Tag('div');
echo $tag->open() . 'text' . $tag->close(); // выведет <div>text</div>
?>
Самостоятельно, не подсматривая в мой код,
сделайте такой же класс Tag
.
Создайте с помощью класса Tag
тег
<img>
и выведите его на экран.
Создайте с помощью класса Tag
тег
<header>
и выведите его на экран
с текстом 'header сайта'
.