use Symfony\Component\Yaml\Parser; use Symfony\Component\Yaml\Dumper; use Drupal\views\ViewExecutable; $files = file_scan_directory('core/modules', '@views\.view\..*\.yml$@'); $parser = new Parser(); $dumper = new Dumper(); $dumper->setIndentation(2); foreach ($files as $file) { $uri = $file->uri; $content = file_get_contents($uri); $data = $parser->parse($content); if (isset($data['display'])) { foreach ($data['display'] as $display_id => &$display) { foreach (ViewExecutable::viewsHandlerTypes() as $type => $info) { $handler_type = isset($info['type']) ? $info['type'] : $type; if (isset($display['display_options'][$info['plural']])) { foreach ($display['display_options'][$info['plural']] as &$field) { $table_data = views_fetch_data($field['table']); if (isset($table_data[$field['field']]['handler_type']['id'])) { $plugin_id = $table_data[$field['field']]['handler_type']['id']; $field['plugin_id'] = $plugin_id; } else { // dsm($uri); dsm($field['table']); dsm($field['field']); } } } } } $output = $dumper->dump($data, PHP_INT_MAX); file_put_contents($uri, $output); $output = trim($output); if (empty($output)) { dsm($uri); // dsm($data); } } }