You are here

public function DrupalFilesSourcePlugin::alterBackupMigrate in Backup and Migrate 5.0.x

Same name and namespace in other branches
  1. 8.4 src/Plugin/BackupMigrateSource/DrupalFilesSourcePlugin.php \Drupal\backup_migrate\Plugin\BackupMigrateSource\DrupalFilesSourcePlugin::alterBackupMigrate()

Alter the backup_migrate object to add the source and required services.

Parameters

\Drupal\backup_migrate\Core\Main\BackupMigrateInterface $bam: The BackupMigrate object to add plugins and services to.

string $key: The id of the source to add.

array $options: The alter options.

Return value

mixed

Overrides SourcePluginBase::alterBackupMigrate

See also

hook_backup_migrate_service_object_alter()

File

src/Plugin/BackupMigrateSource/DrupalFilesSourcePlugin.php, line 26

Class

DrupalFilesSourcePlugin
Defines an default database source plugin.

Namespace

Drupal\backup_migrate\Plugin\BackupMigrateSource

Code

public function alterBackupMigrate(BackupMigrateInterface $bam, $key, array $options = []) {
  $source = $this
    ->getObject();
  $bam
    ->sources()
    ->add($key, $source);
  $config = [
    'exclude_filepaths' => [],
    'source' => $source,
  ];
  switch ($this
    ->getConfig()
    ->get('directory')) {
    case 'public://':
      $config['exclude_filepaths'] = [
        'js',
        'css',
        'php',
        'styles',
        'config_*',
        '.htaccess',
      ];
      break;
    case 'private://':
      $config['exclude_filepaths'] = [
        'backup_migrate',
      ];
      break;
  }

  // @todo Allow modules to add their own excluded defaults.
  $bam
    ->plugins()
    ->add($key . '_exclude', new FileExcludeFilter(new Config($config)));
}