| 
<?php/**
 * User: delboy1978uk
 * Date: 19/11/2016
 * Time: 12:16
 */
 
 namespace Del\Form\Field;
 
 use Del\Form\Collection\FilterCollection;
 use Del\Form\Collection\ValidatorCollection;
 use Del\Form\Filter\FilterInterface;
 use Del\Form\FormInterface;
 use Del\Form\Renderer\Field\SelectRender;
 use Del\Form\Validator\ValidatorInterface;
 use Del\Form\Renderer\Field\FieldRendererInterface;
 use Exception;
 
 interface FieldInterface
 {
 /**
 * @param mixed $value
 * @return FieldInterface
 */
 public function setValue($value);
 
 /**
 * @return mixed
 */
 public function getValue();
 
 /**
 * @param string $label
 * @return FieldInterface
 */
 public function setLabel($label);
 
 /**
 * @return string
 */
 public function getLabel();
 
 /**
 * @return string
 */
 public function getId();
 
 /**
 * @return string
 */
 public function getName();
 
 /**
 * @return mixed
 */
 public function getTag();
 
 /**
 * @return mixed
 */
 public function getClass();
 
 /**
 * @param ValidatorInterface $validator
 * @return $this
 */
 public function addValidator(ValidatorInterface $validator);
 
 /**
 * @return ValidatorCollection
 */
 public function getValidators();
 
 /**
 * @param FilterInterface $filter
 * @return $this
 */
 public function addFilter(FilterInterface $filter);
 
 /**
 * @return FilterCollection
 */
 public function getFilters();
 
 /**
 * @return bool
 * @throws Exception If validation of $value is impossible
 */
 public function isValid();
 
 /**
 * @return array
 */
 public function getMessages();
 
 /**
 * @param string $message
 * @return FieldInterface
 */
 public function setCustomErrorMessage($message);
 
 /**
 * @return bool
 */
 public function hasCustomErrorMessage();
 
 /**
 * @return string
 */
 public function getCustomErrorMessage();
 
 /**
 * @param $key
 * @return mixed|string
 */
 public function getAttribute($key);
 
 /**
 * @param $key
 * @param $value
 * @return $this
 */
 public function setAttribute($key, $value);
 
 /**
 * @param array $attributes
 * @return $this
 */
 public function setAttributes(array $attributes);
 
 /**
 * @return array
 */
 public function getAttributes();
 
 /**
 * @return FieldRendererInterface
 */
 public function getRenderer();
 
 /**
 * @param FieldRendererInterface $renderer
 * @return $this
 */
 public function setRenderer(FieldRendererInterface $renderer);
 
 public function init();
 
 /**
 * @param bool $required
 * @return $this
 */
 public function setRequired($required);
 
 /**
 * @param FormInterface $field
 * @param $triggerValue
 * @return $this
 */
 public function addDynamicForm(FormInterface $field, $triggerValue);
 
 /**
 * @return bool
 */
 public function hasDynamicForms();
 
 /**
 * @return FormInterface[]
 */
 public function getDynamicForms();
 
 /**
 * @return bool
 */
 public function isRequired();
 }
 |