public function __construct($key, array $options = array())
{
$this->addOption('trim', true);
$this->addOption('required', true);
$this->addOption('disabled', false);
$this->addOption('property_path', (string)$key);
$this->addOption('value_transformer');
$this->addOption('normalization_transformer');
$this->key = (string)$key;
if ($this->locale === null) {
$this->locale = class_exists('\Locale', false) ? \Locale::getDefault() : 'en';
}
parent::__construct($options);
if ($this->getOption('value_transformer')) {
$this->setValueTransformer($this->getOption('value_transformer'));
}
if ($this->getOption('normalization_transformer')) {
$this->setNormalizationTransformer($this->getOption('normalization_transformer'));
}
$this->normalizedData = $this->normalize($this->data);
$this->transformedData = $this->transform($this->normalizedData);
$this->required = $this->getOption('required');
$this->setPropertyPath($this->getOption('property_path'));
}