/** * Drops views in dependency order * @param output_file_segmenter $ofs Output file segmenter to write to * @param SimpleXMLElement $db_doc_old Old database document * @param SimpleXMLElement $db_doc_new New database document */ public static function drop_views_ordered($ofs, $db_doc_old, $db_doc_new) { static::with_views_in_order($db_doc_old, function ($old_schema, $old_view) use($db_doc_new, $ofs) { $new_schema = dbx::get_schema($db_doc_new, $old_schema['name']); $new_view = dbx::get_view($new_schema, $old_view['name']); if (format_diff_views::should_drop_view($old_schema, $old_view, $new_schema, $new_view)) { $ofs->write(format_view::get_drop_sql($old_schema, $old_view) . "\n"); } }); }