*/ abstract class AbstractTextField extends AbstractVisibleField { use SizeAttribute, MaxLengthAttribute; private $value = ''; protected function __construct($form, $type, $name, $value = '') { parent::__construct($form, $type, $name); $this->setValue($value); } /** * Возвращает значение поля * @return string */ public function value() { return $this->value; } /** * Задаёт новое значение для текстового поля * @param string|int|float $newValue * @return $this */ public function setValue($newValue) { if (is_string($newValue) || is_numeric($newValue)) { $this->value = strval($newValue); } return $this; } /** * Ассоциативный массив аттрибутов текстового поля * @return array */ public function getAssociativeAttributes() { $attributes = parent::getAssociativeAttributes(); $this->appendSizeAttribute($attributes); $this->appendMaxLengthAttribute($attributes); $attributes['value'] = $this->value; return $attributes; } }