예제 #1
0
 /**
  * @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});
             }
         }
     }
 }