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; }