You are here

class FileNamer in Backup and Migrate 8.4

Class FileNamer.

@package BackupMigrate\Core\Filter

Hierarchy

Expanded class hierarchy of FileNamer

File

lib/backup_migrate_core/src/Filter/FileNamer.php, line 18

Namespace

BackupMigrate\Core\Filter
View source
class FileNamer extends PluginBase implements FileProcessorInterface {
  use FileProcessorTrait;

  /**
   * {@inheritdoc}
   */
  public function configSchema($params = []) {
    $schema = [];
    if (\Drupal::moduleHandler()
      ->moduleExists('token')) {
      $must_match = '/^[\\w\\-_:\\[\\]]+$/';
      $must_match_err = $this
        ->t('%title must contain only letters, numbers, dashes (-) and underscores (_). And Site Tokens.');
    }
    else {
      $must_match = '/^[\\w\\-_:]+$/';
      $must_match_err = $this
        ->t('%title must contain only letters, numbers, dashes (-) and underscores (_).');
    }

    // Backup configuration.
    if ($params['operation'] == 'backup') {
      $schema['groups']['file'] = [
        'title' => 'Backup File',
      ];
      $schema['fields']['filename'] = [
        'group' => 'file',
        'type' => 'text',
        'title' => 'File Name',
        'must_match' => $must_match,
        'must_match_error' => $must_match_err,
        'min_length' => 1,
        // Allow a 200 character backup name leaving a generous 55 characters
        // for timestamp and extension.
        'max_length' => 200,
        'required' => TRUE,
      ];
      $schema['fields']['timestamp'] = [
        'group' => 'file',
        'type' => 'boolean',
        'title' => 'Append a timestamp',
      ];
      $schema['fields']['timestamp_format'] = [
        'group' => 'file',
        'type' => 'text',
        'title' => 'Timestamp Format',
        'max_length' => 32,
        'dependencies' => [
          'timestamp' => TRUE,
        ],
        'description' => $this
          ->t('Use <a href="http://php.net/date">PHP Date formatting</a>.'),
      ];
    }
    return $schema;
  }

  /**
   * Get the default values for the plugin.
   *
   * @return \BackupMigrate\Core\Config\Config
   */
  public function configDefaults() {
    return new Config([
      'filename' => 'backup',
      'timestamp' => TRUE,
      'timestamp_format' => 'Y-m-d\\TH-i-s',
    ]);
  }

  /**
   * Get a list of supported operations and their weight.
   *
   * @return array
   */
  public function supportedOps() {
    return [
      'afterBackup' => [],
    ];
  }

  /**
   * Run on a backup. Name the backup file according to the configuration.
   *
   * @param \BackupMigrate\Core\File\BackupFileReadableInterface $file
   *
   * @return \BackupMigrate\Core\File\BackupFileReadableInterface
   */
  public function afterBackup(BackupFileReadableInterface $file) {
    if (\Drupal::moduleHandler()
      ->moduleExists('token')) {
      $token = \Drupal::token();
      $name = $token
        ->replace($this
        ->confGet('filename'));
    }
    else {
      $name = $this
        ->confGet('filename');
    }
    if ($this
      ->confGet('timestamp')) {
      $name .= '-' . date($this
        ->confGet('timestamp_format'));
    }
    $file
      ->setName($name);
    return $file;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigurableTrait::$config protected property The object's configuration object.
ConfigurableTrait::$init protected property The initial configuration. These configuration options can be overriden by the config options but will not be overwritten. If the object is re-configured after construction any missing configuration options will revert to these values.
ConfigurableTrait::confGet public function Get a specific value from the configuration.
ConfigurableTrait::config public function Get the configuration object for this item.
ConfigurableTrait::configErrors public function Get any validation errors in the config.
ConfigurableTrait::setConfig public function Set the configuration for all plugins. 1
ConfigurableTrait::__construct public function 2
FileNamer::afterBackup public function Run on a backup. Name the backup file according to the configuration.
FileNamer::configDefaults public function Get the default values for the plugin. Overrides ConfigurableTrait::configDefaults
FileNamer::configSchema public function Get a default (blank) schema. Overrides ConfigurableTrait::configSchema
FileNamer::supportedOps public function Get a list of supported operations and their weight. Overrides PluginBase::supportedOps
FileProcessorTrait::$tempfilemanager protected property
FileProcessorTrait::alterMime public function Provide the file mime for the given file extension if known.
FileProcessorTrait::getTempFileManager public function Get the temp file manager.
FileProcessorTrait::setTempFileManager public function Inject the temp file manager.
PluginBase::opWeight public function What is the weight of the given operation for this plugin. Overrides PluginInterface::opWeight
PluginBase::supportsOp public function Does this plugin implement the given operation. Overrides PluginInterface::supportsOp
TranslatableTrait::$translator protected property
TranslatableTrait::setTranslator public function
TranslatableTrait::t public function Translate the given string if there is a translator service available.