/** * @param $elements object[]|Component[] the component objects * @param $composite_class_name string the composite class name */ private function removeCompositeFromComponents($elements, $composite_class_name) { if (isA($element = reset($elements), Component::class)) { $getCompositeProperty = [get_class($element), 'getCompositeProperty']; if ($composite_property = call_user_func($getCompositeProperty, $composite_class_name)) { foreach ($elements as $element) { $property_name = $composite_property->name; $id_property_name = 'id_' . $property_name; if (isset($element->{$property_name})) { $this->dao->disconnect($element->{$property_name}); } unset($element->{$id_property_name}); } } } }
/** * @param $class_name string * @return string */ public function storeNameOf($class_name) { if (isset($this->tables[$class_name])) { $store_name = $this->tables[$class_name]; } else { $store_name = parent::storeNameOf($class_name); $this->tables[$class_name] = $store_name; } return $store_name; }