Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function setValue($value)
 {
     if ($value === null) {
         $value = array();
     } elseif (!Value::isArray($value)) {
         throw new InvalidArgumentException(sprintf("Field set value has invalid type: '%s'", gettype($value)));
     }
     return parent::setValue($value);
 }
Ejemplo n.º 2
0
 /**
  * Caller
  *
  * @param mixed    $data     Data
  * @param \Closure $callback Callback
  *
  * @return mixed
  */
 public function map($data, \Closure $callback)
 {
     if (!Value::isArray($data)) {
         return array();
     } elseif (!is_callable($callback)) {
         return $data;
     }
     foreach ($data as $key => $value) {
         $data[$key] = call_user_func_array($callback, array($key, $value));
     }
     return $data;
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function validate($value)
 {
     if (Value::isEmpty($value)) {
         return false;
     }
     if (Value::isArray($value)) {
         $flag = !empty($value);
     } else {
         $value = Value::getString($value);
         $flag = !Value::isEmpty($value);
     }
     return $flag;
 }
Ejemplo n.º 4
0
 /**
  * Caller
  *
  * @param \Traversable|array $values   Values to be iterated
  * @param callable           $callback Callback
  *
  * @return array
  */
 public function each($values, \Closure $callback)
 {
     if (!Value::isArray($values) || !is_callable($callback)) {
         return array();
     }
     $renderer = $this->getView()->getRenderer();
     $results = array();
     foreach ($values as $value) {
         $args = array($renderer, $value);
         $result = call_user_func_array($callback, $args);
         $results[] = $result;
     }
     return $results;
 }
Ejemplo n.º 5
0
 /**
  * Constructor
  *
  * @param Form     $form    Base form
  * @param string   $name    Unique name
  * @param array    $values  Values to be binded
  * @param callable $creator Fields creator
  * @param callable $updater Binded values updater
  *
  * @throws \InvalidArgumentException
  */
 public function __construct(Form $form, $name, $values, $creator, $updater)
 {
     $this->form = $form;
     $this->name = $name;
     $this->values = Value::isArray($values) ? $values : (array) $values;
     if (!is_callable($creator)) {
         throw new \InvalidArgumentException(sprintf("Form bind '%s' creator is not callable.", $this->name));
     }
     $this->creator = $creator;
     if (!is_callable($creator)) {
         throw new \InvalidArgumentException(sprintf("Form bind '%s' updater is not callable.", $this->name));
     }
     $this->updater = $updater;
     $form->addBind($this);
 }
Ejemplo n.º 6
0
 /**
  * Caller
  *
  * @param mixed  $data      Traversable data
  * @param string $separator Characters between values
  *
  * @return mixed
  */
 public function join($data, $separator = ', ')
 {
     if (Value::isArray($data)) {
         $values = array();
         foreach ($data as $value) {
             $value = Value::getString($value);
             if ($value !== null) {
                 $values[] = $value;
             }
         }
         $data = $values;
     } else {
         $data = array();
     }
     $result = implode($separator, $data);
     return $result;
 }