Example #1
0
 protected function _setObject($key, $data, $class = '', $nkey = '')
 {
     if (empty($class)) {
         if (!$this->isObjectProperty($key, $class, $nkey)) {
             return false;
         }
     }
     // setting an object
     FC::log_core_debug(get_class($this) . "->_setObject({$key}, [data], {$class}, {$nkey})");
     $obj = new $class();
     // set data set with interresting data only
     $part = array();
     foreach ($data as $k => $v) {
         if (preg_match('/^(' . $nkey . '__|' . $nkey . '::)([a-z0-9_]+)$/', $k, $m)) {
             $kk = $m[2];
             $part[$kk] = $v;
         }
     }
     FC::log_core_debug(' -> found ' . count($part) . ' properties to be set (' . implode(', ', array_keys($part)) . ')');
     if (count($part)) {
         if ($obj->set($part)) {
             FC::log_core_debug(" => setting " . get_class($obj) . " in {$key}");
             $this->data[$key] = $obj;
             return true;
         } else {
             FC::log_core_debug($obj->getAllErrors());
         }
     }
     return false;
 }