/**
  * 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");
         }
     });
 }