Пример #1
0
 /**
  * {@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);
 }
Пример #2
0
 /**
  * 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());
 }
Пример #4
0
 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');
 }
Пример #5
0
 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());
 }
Пример #6
0
 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;
     }
 }