Убираем метод open в классе Input
Давайте уберем метод open, добавив
магию метода __toString:
<?php
class Input extends Tag
{
public function __construct()
{
parent::__construct('input');
}
public function __toString()
{
return parent::open();
}
}
?>
Перепишите приведенный ниже код с учетом нашей правки:
<?php
$form = (new Form)->setAttrs(['action' => '', 'method' => 'GET']);
echo $form->open();
echo (new Input)->setAttr('name', 'year')->open();
echo (new Input)->setAttr('type', 'submit')->open();
echo $form->close();
?>