Esempio n. 1
0
 /**
  * test arrayMergeRecursive()
  */
 public function testMergeRecursive()
 {
     $this->assertEquals(array(), Idun_Array::mergeRecursive(array(), array()));
     $this->assertEquals(array('foo' => 'bar'), Idun_Array::mergeRecursive(array(), array('foo' => 'bar')));
     $this->assertEquals(array('foo' => 'bar'), Idun_Array::mergeRecursive(array('foo' => 'bar'), array()));
     $this->assertEquals(array('foo' => array('key' => 'bar'), 'key' => 'value'), Idun_Array::mergeRecursive(array('foo' => array(), 'key' => 'value'), array('foo' => array('key' => 'bar'))));
     $this->assertEquals(array('key' => array('sub' => 'way')), Idun_Array::mergeRecursive(array('key' => 'value'), array('key' => array('sub' => 'way'))));
     $this->assertEquals(array('key' => 'value'), Idun_Array::mergeRecursive(array('key' => array('sub' => 'way')), array('key' => 'value')));
 }
Esempio n. 2
0
 /**
  * Filter value by given definition and/or configuration.
  * 
  * @access protected
  * @param  mixed   $value   Value to validate
  * @param  mixed   $default Default value if $value is not valid
  * @param  integer $filter  Filter definition
  * @param  array   $options Filter configuration
  * @return mixed
  */
 protected function _filter($value, $default = null, $filter = null, array $options = null)
 {
     if ($options === null) {
         $options = array();
     }
     if (!empty($options['flags'])) {
         $options['flags'] |= FILTER_NULL_ON_FAILURE;
     } else {
         $options = Idun_Array::mergeRecursive($options, array('flags' => FILTER_NULL_ON_FAILURE));
     }
     if (!is_int($filter) && !is_numeric($filter)) {
         $mapping = array('int' => FILTER_VALIDATE_INT, 'integer' => FILTER_VALIDATE_INT, 'float' => FILTER_VALIDATE_FLOAT, 'double' => FILTER_VALIDATE_FLOAT, 'ip' => FILTER_VALIDATE_IP, 'url' => FILTER_VALIDATE_URL, 'email' => FILTER_VALIDATE_EMAIL, 'mail' => FILTER_VALIDATE_EMAIL, 'bool' => FILTER_VALIDATE_BOOLEAN, 'boolean' => FILTER_VALIDATE_BOOLEAN, 'regex' => FILTER_VALIDATE_REGEXP, 'regexp' => FILTER_VALIDATE_REGEXP);
         if (!isset($mapping[$filter])) {
             throw new Idun_Controller_Request_Exception(sprintf('Unknown filter type "%s".', $filter));
         }
         $filter = $mapping[$filter];
     }
     if (($value = filter_var($value, $filter, $options)) === null) {
         $value = $default;
     }
     return $value;
 }