Esempio n. 1
0
 public function testHydrate()
 {
     $datas = array('toto' => 'vtoto', 'tata' => 'vtata');
     $mock = $this->getMockBuilder('stdClass')->setMethods(['setToto', 'setTata'])->getMock();
     $mock->expects($this->any())->method('setToto')->with($this->equalTo('vtoto'))->will($this->returnSelf());
     $mock->expects($this->any())->method('setTata')->with($this->equalTo('vtata'))->will($this->returnSelf());
     $classmethode = new ClassMethods();
     $classmethode->hydrate($datas, $mock);
 }
Esempio n. 2
0
 /**
  * Populate from an array.
  *
  * @param array $data            
  *
  * @return AbstractModel
  */
 public function exchangeArray(array &$data)
 {
     $hydrator = new ClassMethods();
     $formatted = [];
     if (null !== $this->prefix) {
         $pr = $this->allParent();
         $eq = $pr === $this->prefix;
         foreach ($data as $key => $value) {
             $fkey = null;
             if (0 === ($tmp = strpos($key, $this->prefix . $this->delimiter))) {
                 $fkey = substr($key, strlen($this->prefix . $this->delimiter));
             } elseif ($eq === false && $tmp !== false && 0 === strpos($key, $pr . $this->delimiter)) {
                 $fkey = substr($key, strlen($pr . $this->delimiter));
             } elseif (0 === ($tmp = strpos($key, $this->prefix . $this->delimiter_opt))) {
                 $fkey = substr($key, strlen($this->prefix . $this->delimiter_opt));
                 if ($value === null) {
                     $this->keep = false;
                 }
             } elseif ($eq === false && $tmp !== false && 0 === strpos($key, $pr . $this->delimiter_opt)) {
                 $fkey = substr($key, strlen($pr . $this->delimiter_opt));
                 if ($value === null) {
                     $this->keep = false;
                 }
             }
             if (null !== $fkey && $hydrator->canBeHydrated($fkey, $this)) {
                 $formatted[$fkey] = $value === null ? new IsNull() : $value;
                 unset($data[$key]);
             }
         }
     }
     if (null === $this->prefix || empty($formatted)) {
         foreach ($data as $key => $value) {
             if ($hydrator->canBeHydrated($key, $this)) {
                 $formatted[$key] = $value === null ? new IsNull() : $value;
                 unset($data[$key]);
             }
         }
     }
     if (!empty($formatted) && $this->keep === true) {
         $hydrator->hydrate($formatted, $this);
     }
     return $this;
 }