_host = $host; $this->_user = $user; $this->_password = $password; $this->_schema = $schema; $this->_varPath = $varPath; $this->_shell = $shell; } /** * Remove all DB objects */ abstract public function cleanup(); /** * Get filename for setup db dump * * @return string */ abstract protected function getSetupDbDumpFilename(); /** * Is dump esxists * * @return bool */ abstract public function isDbDumpExists(); /** * Store setup db dump */ abstract public function storeDbDump(); /** * Restore db from setup db dump */ abstract public function restoreFromDbDump(); /** * @return string */ abstract public function getVendorName(); /** * @return string */ public function getSchema() { return $this->_schema; } /** * @return string */ public function getHost() { return $this->_host; } /** * @return string */ public function getUser() { return $this->_user; } /** * @return string */ public function getPassword() { return $this->_password; } /** * Create file with sql script content. * Utility method that is used in children classes * * @param string $file * @param string $content * @return int */ protected function _createScript($file, $content) { return file_put_contents($file, $content); } /** * @throws \LogicException */ protected function assertVarPathWritable() { if (!is_dir($this->_varPath) || !is_writable($this->_varPath)) { throw new \LogicException("The specified '{$this->_varPath}' is not a directory or not writable."); } } }