/** * Process generator */ protected function createProcess() { $process = new Process(); $cmd = new Cmd($this->binary); $process->addCommand($cmd); // no std error unless it is activated if (!$this->showStdErr) { $cmd->silence(); // i kill you } $cmd->addOptionIfNotEmpty('--user', $this->user); $cmd->addOptionIfNotEmpty('--password', $this->password); $cmd->addOptionIfNotEmpty('--host', $this->host); $cmd->addOptionIfNotEmpty($this->extraCommand, $this->extraCommand, false); $cmd->addOptionIfNotEmpty('-q', $this->quick, false); $cmd->addOptionIfNotEmpty('-C', $this->compress, false); $cmd->addOptionIfNotEmpty('-e', $this->extendedInsert, false); $cmd->addOptionIfNotEmpty('--hex-blob', $this->hexBlob, false); if (count($this->tablesToDump)) { $cmd->addOption('--tables', $this->tablesToDump); } else { if (count($this->databasesToDump)) { $cmd->addOption('--databases', $this->databasesToDump); } else { $cmd->addOption('--all-databases'); } } if (count($this->tablesToIgnore)) { foreach ($this->tablesToIgnore as $table) { $cmd->addOption('--ignore-table', $table); } } if ($this->noData) { $cmd->addOption('--no-data'); } else { if (count($this->structureOnly)) { $cmd2 = clone $cmd; foreach ($this->structureOnly as $table) { $cmd2->addOption('--ignore-table', $table); } $cmd2->addOption('--skip-add-drop-table'); $cmd2->addOption('--no-create-db'); $cmd2->addOption('--no-create-info'); $cmd->addOption('--no-data'); $process->addCommand($cmd2); } } $process->redirectOutputTo($this->dumpPathname); return $process; }