/** * @param InputInterface $consoleInput * @param OutputInterface $consoleOutput * @param $config * @param $inputName * @param $console * * @return int|void * * @throws \Exception */ public function backup($inputName, InputInterface $consoleInput, OutputInterface $consoleOutput, ConfigContract $config, SyncOutputContract $console) { // Loop through outputs foreach ($this->getOutputNames($consoleInput, $config, $inputName) as $outputName) { // Display started message $this->started($consoleOutput, $inputName, $outputName); // Create Sync Settings $settings = $this->createSettings($inputName, $outputName, $consoleInput, $config); $this->setTimezone($settings); // Create IO Handler $inputHandler = $this->createInput($inputName, $config); $outputHandler = $this->createOutput($outputName, $config, null, $consoleInput->getOption('no-interaction')); // Create Sync Application $app = new Application(); $app->create($inputHandler, $outputHandler, $settings, $console); // Add Middleware $this->createVersioningMiddleware($inputName, $settings, $app); $this->createEncryptionMiddleware($settings, $app); // Run Sync $app->run(); // Free some RAM unset($settings, $inputHandler, $outputHandler, $app); } }