コード例 #1
0
ファイル: Mysqldump.php プロジェクト: todiadiyatmo/phpbu
 /**
  * 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;
 }