Beispiel #1
0
 public static function checkClassParentChildLinks($definition)
 {
     //        if( isset($definition['parent_classes']) && !empty($definition['parent_classes']) ) {
     //            foreach($definition['parent_classes'] as $parent_class_name)
     //            {
     //                $msg = 'Класс "'.$definition['class_name'].'" ссылается на родительский класс "'.$parent_class_name;
     //                if( !UN_ObjectModel::installed($parent_class_name))
     //                    die($msg.'", но последий не был найден в системе.');
     //                if( isset($parent_class_name::$un_definition['child_classes']) ) {
     //                    if( !empty($parent_class_name::$un_definition['child_classes']) ) {
     //                        if( isset($parent_class_name::$un_definition['child_classes'][$definition['class_name']]) ){
     //                            if( isset($parent_class_name::$un_definition['child_classes'][$definition['class_name']]['fields_blocked']) ){
     //                                if( !empty($parent_class_name::$un_definition['child_classes'][$definition['class_name']]['fields_blocked']) ){
     //                                    foreach($parent_class_name::$un_definition['child_classes'][$definition['class_name']]['fields_blocked'] as $field_name)
     //                                    {
     //                                        if( $field_name == '' )
     //                                            die($msg.'", и в последнем в массиве "fields_blocked" есть пустое имя поля. Удалите его или заполните.');
     //                                        if( !isset($definition['fields'][$field_name]) )
     //                                            die($msg.'", но последний в массиве "fields_blocked" ссылается на не существующее у класса "'.$definition['class_name'].'" поле "'.$field_name.'"');
     //                                    }
     //                                } else
     //                                    die($msg.'", но в последнем массив полей, передаваемых дочернему классу "fields_blocked" пуст.');
     //                            } else
     //                                die($msg.'", но в последнем отсутствует массив "fields_blocked" полей передаваемых дочернему классу.');
     //                        } else
     //                            die($msg.'", но в массивве "child_classes" последнего нет определения класса "'.$definition['class_name'].'" как дочернего.');
     //                    } else
     //                        die($msg.'", но в последнем массив дочерних классов "child_classes" пуст.');
     //                } else
     //                    die($msg.'", но в последнем полностью отсутствует определение дочерних классов "child_classes".');
     //            }
     //        }
     if (isset($definition['child_classes']) && !empty($definition['child_classes'])) {
         foreach ($definition['child_classes'] as $child_class_name => $child_class_data) {
             $msg = 'Класс "' . $definition['class_name'] . '" ссылается на дочерний класс "' . $child_class_name;
             if (!($definition['class_name'] == $child_class_name) && !UN_ObjectModel::installed($child_class_name)) {
                 die($msg . '", но последий не был найден в системе.');
             }
             //                if( isset($child_class_name::$un_definition['parent_classes']) ) {
             //                    if( !empty($child_class_name::$un_definition['parent_classes']) ) {
             //                        if( in_array($definition['class_name'], $child_class_name::$un_definition['parent_classes']) ){
             //
             //                        } else
             //                            die($msg.'", но в массивве "parent_classes" последнего нет определения класса "'.$definition['class_name'].'" как родительского.');
             //                    } else
             //                        die($msg.'", но в последнем массив родительских классов "parent_classes" пуст.');
             //                } else
             //                    die($msg.'", но в последнем полностью отсутствует определение родительских классов "parent_classes".');
             // fields blocked check
             if (isset($child_class_data['fields_blocked'])) {
                 if (!empty($child_class_data['fields_blocked'])) {
                     foreach ($child_class_data['fields_blocked'] as $field_name) {
                         if ($field_name == '') {
                             die($msg . '", и в первом в массиве "fields_blocked" есть пустое имя поля. Удалите его или заполните.');
                         }
                         if (!isset($child_class_name::$un_definition['fields'][$field_name])) {
                             die($msg . '", но первый в массиве "fields_blocked" ссылается на не существующее у класса "' . $definition['class_name'] . '" поле "' . $field_name . '"');
                         }
                     }
                 } else {
                     die($msg . '", но в первом массив полей, передаваемых дочернему классу "fields_blocked" пуст.');
                 }
             } else {
                 die($msg . '", но в первом отсутствует массив "fields_blocked" полей передаваемых дочернему классу.');
             }
         }
     }
     return true;
 }