/** * {@inheritdoc} */ public function createStream(array $tables = array()) { if (!mwp_is_shell_available()) { throw new MWP_Worker_Exception(MWP_Worker_Exception::SHELL_NOT_AVAILABLE, 'Shell not available.'); } $mysqldump = mwp_container()->getExecutableFinder()->find('mysqldump', 'mysqldump'); $processBuilder = $this->createProcessBuilder($tables, $mysqldump); $process = $processBuilder->getProcess(); mwp_logger()->info('Database dumping process starting', array('executable_location' => $mysqldump, 'command_line' => $process->getCommandLine())); return new MWP_Stream_ProcessOutput($process); }
/** * Run md5sum process and return file hash, or null in case of error * * @param $realPath * * @return string|null */ public function computeUnixMd5Sum($realPath) { try { $processBuilder = Symfony_Process_ProcessBuilder::create()->setPrefix('md5sum')->add($realPath); if (!mwp_is_shell_available()) { throw new MMB_Exception("Shell is not available"); } $process = $processBuilder->getProcess(); $process->run(); if (!$process->isSuccessful()) { throw new Symfony_Process_Exception_ProcessFailedException($process); } // Output is in the format of "md5hash filename" $output = trim($process->getOutput()); $parts = explode(' ', $output); // Return only the first part of the output return trim($parts[0]); } catch (Symfony_Process_Exception_ProcessFailedException $e) { mwp_logger()->error('MD5 command line sum failed', array('process' => $e->getProcess())); } catch (Exception $e) { mwp_logger()->error('MD5 command line sum failed', array('exception' => $e)); } return null; }
public static function factory() { return new self(memory_get_peak_usage(true), memory_get_usage(true), function_exists('sys_getloadavg') ? sys_getloadavg() : array(0, 0, 0), mwp_is_shell_available()); }
public function getServerInfo(array $options = array()) { $context = $this->container->getWordPressContext(); return array('phpVersion' => PHP_VERSION, 'mysqlVersion' => $context->getDb()->db_version(), 'extensionPdoMysql' => extension_loaded('pdo_mysql'), 'extensionOpenSsl' => extension_loaded('openssl'), 'extensionFtp' => extension_loaded('ftp'), 'extensionZlib' => extension_loaded('zlib'), 'extensionBz2' => extension_loaded('bz2'), 'extensionZip' => extension_loaded('zip'), 'extensionCurl' => extension_loaded('curl'), 'extensionGd' => extension_loaded('gd'), 'extensionImagick' => extension_loaded('imagick'), 'extensionSockets' => extension_loaded('sockets'), 'extensionSsh2' => extension_loaded('ssh2'), 'shellAvailable' => mwp_is_shell_available(), 'safeMode' => mwp_is_safe_mode(), 'memoryLimit' => mwp_format_memory_limit(ini_get('memory_limit')), 'disabledFunctions' => mwp_get_disabled_functions(), 'processArchitecture' => strlen(decbin(~0)), 'internalIp' => $this->container->getRequestStack()->getMasterRequest()->server['SERVER_ADDR'], 'uname' => php_uname('a'), 'hostname' => php_uname('n'), 'os' => strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? 'windows' : 'unix'); }
public static function factory() { return new self(memory_get_peak_usage(true), memory_get_usage(true), strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? array(0, 0, 0) : sys_getloadavg(), mwp_is_shell_available()); }
private function mySqlExists() { $mysql = mwp_container()->getExecutableFinder()->find('mysql', 'mysql'); $processBuilder = Symfony_Process_ProcessBuilder::create()->setWorkingDirectory(untrailingslashit(ABSPATH))->setPrefix($mysql)->add('--version'); try { if (!mwp_is_shell_available()) { throw new MMB_Exception("Shell is not available"); } $process = $processBuilder->getProcess(); $process->run(); return $process->isSuccessful(); } catch (Exception $e) { return false; } }