Сейчас мы с вами сделаем класс 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 сайта'.