Form::addAttribute()

Метод setAttribute() используется для добавления атрибутов к тегу <form>.

Например:
$form = new Form();
$form->setAttribute('action', 'some/path');
echo (string)$form;

Результатом будет: 
<form action="some/path">
</form>


# Требования

+ Добавлять атрибуты не обязательно.
+ Можно добавить атрибут.
+ Можно добавить несколько атрибутов.
+ Если атрибут уже был добавлен, то заменяется новым значением
+ Должно быть экранирование значения атрибута.
. Должно быть экранирование названия и значения атрибутов.

# Требование: Добавлять атрибуты не обязательно.

Код:
$form = new Form();
echo (string)$form;

Результатом будет: 
<form>
</form>

# Требование: Можно добавить атрибут.

Код:
$form = new Form();
$form->addAttribute('action', 'some/path');
echo (string)$form;

Результатом будет: 
<form action="some/path">
</form>

# Требование: Можно добавить несколько атрибутов.

Код:
$form = new Form();
$form->addAttribute('action', 'some/path');
$form->addAttribute('id', 'simple_form');
echo (string)$form;

Результатом будет: 
<form action="some/path" id="simple_form">
</form>

# Требование: Если атрибут уже был добавлен, то заменяется новым значением.

Код:
$form = new Form();
$form->addAttribute('action', 'some/path');
$form->addAttribute('action', 'new/path');
echo (string)$form;

Результатом будет: 
<form action="new/path">
</form>

# Требование: Должно быть экранирование значения атрибута.

@deplecated @see Требование: Должно быть экранирование названия и значения атрибутов.

Код:
$form = new Form();
$form->addAttribute('action', '\', ", >, <, &.');
echo (string)$form;

Результатом будет: 
<form action="', &quot;, &gt;, &lt;, &amp;">
</form>

# Требование: Должно быть экранирование названия и значения атрибутов.

@TBD