BackupMigrateQuickBackupForm.php in Backup and Migrate 8.4        
                          
                  
                        
  
  
  
  
File
  src/Form/BackupMigrateQuickBackupForm.php
  
    View source  
  <?php
namespace Drupal\backup_migrate\Form;
use BackupMigrate\Drupal\Config\DrupalConfigHelper;
use Drupal\backup_migrate\Entity\SettingsProfile;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class BackupMigrateQuickBackupForm extends FormBase {
  
  public function getFormId() {
    return 'backup_migrate_ui_manual_backup_quick';
  }
  
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form = [];
    
    $bam = backup_migrate_get_service_object();
    $form['quickbackup'] = [
      '#type' => 'fieldset',
      "#title" => $this
        ->t("Quick Backup"),
      "#collapsible" => FALSE,
      "#collapsed" => FALSE,
      "#tree" => FALSE,
    ];
    $form['quickbackup']['source_id'] = DrupalConfigHelper::getSourceSelector($bam, t('Backup Source'));
    $form['quickbackup']['destination_id'] = DrupalConfigHelper::getDestinationSelector($bam, t('Backup Destination'));
    $form['quickbackup']['settings_profile_id'] = DrupalConfigHelper::getSettingsProfileSelector(t('Settings Profile'));
    unset($form['quickbackup']['destination_id']['#options']['upload']);
    
    $form['quickbackup']['submit'] = [
      '#type' => 'submit',
      '#value' => $this
        ->t('Backup now'),
      '#weight' => 1,
    ];
    return $form;
  }
  
  public function validateForm(array &$form, FormStateInterface $form_state) {
    parent::validateForm($form, $form_state);
  }
  
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $values = $form_state
      ->getValues();
    $config = [];
    
    if (!empty($values['settings_profile_id'])) {
      $config = SettingsProfile::load($values['settings_profile_id'])
        ->get('config');
    }
    backup_migrate_perform_backup($values['source_id'], $values['destination_id'], $config);
  }
}