public function ConfigDownloadController::diff in Demonstration site (Sandbox / Snapshot) 8
Shows diff of specified configuration file.
Parameters
string $source_name: The name of the configuration file.
string $target_name: (optional) The name of the target configuration file if different from the $source_name.
string $collection: (optional) The configuration collection name. Defaults to the default collection.
Return value
string Table showing a two-way diff between the active and staged configuration.
File
- src/
Controller/ ConfigDownloadController.php, line 159
Class
- ConfigDownloadController
- Returns responses for config module routes.
Namespace
Drupal\demo\ControllerCode
public function diff($source_name, $target_name = NULL, $collection = NULL) {
if (!isset($collection)) {
$collection = StorageInterface::DEFAULT_COLLECTION;
}
$diff = $this->configManager
->diff($this->targetStorage, $this->sourceStorage, $source_name, $target_name, $collection);
$this->diffFormatter->show_header = FALSE;
$build = [];
$build['#title'] = t('View changes of @config_file', [
'@config_file' => $source_name,
]);
// Add the CSS for the inline diff.
$build['#attached']['library'][] = 'system/diff';
$build['diff'] = [
'#type' => 'table',
'#attributes' => [
'class' => [
'diff',
],
],
'#header' => [
[
'data' => t('Active'),
'colspan' => '2',
],
[
'data' => t('Staged'),
'colspan' => '2',
],
],
'#rows' => $this->diffFormatter
->format($diff),
];
$build['back'] = [
'#type' => 'link',
'#attributes' => [
'class' => [
'dialog-cancel',
],
],
'#title' => "Back to 'Synchronize configuration' page.",
'#url' => Url::fromRoute('config.sync'),
];
return $build;
}