PATH:
home
/
thebhoeo
/
.trash
/
backwpup
/
inc
<?php /** * Class BackWPup_System_Tests_Runner. */ class BackWPup_System_Tests_Runner { /** * Errors. * * @var string[] A list of errors */ private $errors = []; /** * Warning. * * @var string[] A list of warnings */ private $warnings = []; /** * System Requirements. * * @var BackWPup_System_Requirements */ private $requirements; /** * System Tests Instance. * * @var BackWPup_System_Tests */ private $system_tests; /** * Suppress Success Message. * * @var bool To suppress or not the success message */ private $suppress_success_message; /** * BackWPup_System_Tests_Runner constructor. * * @param BackWPup_System_Requirements $requirements The instance. * @param BackWPup_System_Tests $system_tests The instance. * @param bool $suppress_success_message To suppress or not the success message. */ public function __construct( BackWPup_System_Requirements $requirements, BackWPup_System_Tests $system_tests, $suppress_success_message ) { $this->requirements = $requirements; $this->system_tests = $system_tests; $this->suppress_success_message = $suppress_success_message; } /** * Run Tests. */ public function run() { /* translators: 1: extension name, 2: file suffix. */ $extension_rec = _x( 'We recommend to install the %1$s extension to generate %2$s archives.', '%1 = extension name, %2 = file suffix', 'backwpup' ); $raw_response = BackWPup_Job::get_jobrun_url( 'test' ); // WP Version check. if ( ! $this->system_tests->is_wp_version_compatible() ) { $this->errors[] = $this->message( sprintf( /* translators: 1: minimum WordPress version, 2: current WordPress version. */ __( 'You must run WordPress version %1$s or higher to use this plugin. You are using version %2$s now.', 'backwpup' ), $this->requirements->wp_minimum_version(), BackWPup::get_plugin_data( 'wp_version' ) ), 'error' ); } // PHP Version check. if ( ! $this->system_tests->is_php_version_compatible() ) { $this->errors[] = $this->message( sprintf( /* translators: 1: minimum PHP version, 2: current PHP version. */ __( 'We recommend to run a PHP version above %1$s to get the full plugin functionality. You are using version %2$s now.', 'backwpup' ), $this->requirements->php_minimum_version(), PHP_VERSION ), 'error' ); } $db_version = backwpup_wpdb()->db_version(); // Mysql Version check. if ( ! $this->system_tests->is_database_compatible() ) { $this->errors[] = $this->message( sprintf( /* translators: 1: minimum MySQL version, 2: current MySQL version. */ __( 'You must have the MySQLi extension installed and a MySQL server version of %1$s or higher to use this plugin. You are using version %2$s now.', 'backwpup' ), $this->requirements->mysql_minimum_version(), $db_version ), 'error' ); } // Curl check. if ( ! $this->system_tests->test_curl_init() ) { $this->errors[] = $this->message( __( 'PHP cURL extension must be installed to use the full plugin functionality.', 'backwpup' ), 'error' ); } // ZIPArchive. if ( ! $this->system_tests->test_zip_archive() ) { $this->warnings[] = $this->message( sprintf( $extension_rec, 'PHP ZIP', '.zip' ), 'warning' ); } // GZ. if ( ! $this->system_tests->support_gzip() ) { $this->warnings[] = $this->message( sprintf( $extension_rec, 'PHP GZ', '.tar.gz' ), 'warning' ); } // Safe mode. if ( $this->system_tests->is_save_mode_activated() ) { $this->errors[] = $this->message( str_replace( '\"', '"', sprintf( /* translators: %s: PHP manual URL. */ _x( 'Please disable the deprecated <a href="%s">PHP safe mode</a>.', 'Link to PHP manual', 'backwpup' ), 'http://php.net/manual/en/features.safe-mode.php' ) ), 'error' ); } // FTP. if ( ! $this->system_tests->is_ftp_supported() ) { $this->warnings[] = $this->message( esc_html__( 'We recommend to install the PHP FTP extension to use the FTP backup destination.', 'backwpup' ), 'warning' ); } // Temp dir. $temp_dir_state = $this->system_tests->temp_dir_state(); if ( '' !== $temp_dir_state ) { $this->errors[] = $this->message( esc_html( $temp_dir_state ), 'error' ); } // Log dir. $log_folder_message = $this->system_tests->log_folder_state(); if ( ! empty( $log_folder_message ) ) { $this->errors[] = $this->message( esc_html( $log_folder_message ), 'error' ); } if ( is_wp_error( $raw_response ) ) { $this->warnings[] = $this->message( esc_html( sprintf( /* translators: %s: HTTP error message. */ __( 'The HTTP response test result is an error: "%s".', 'backwpup' ), $raw_response->get_error_message() ) ), 'warning' ); } if ( 200 !== (int) wp_remote_retrieve_response_code( $raw_response ) && 204 !== (int) wp_remote_retrieve_response_code( $raw_response ) ) { $this->warnings[] = $this->message( sprintf( /* translators: %s: HTTP status code. */ __( 'The HTTP response test result is a wrong HTTP status: %s. It should be status 200.', 'backwpup' ), wp_remote_retrieve_response_code( $raw_response ) ), 'warning' ); } // Cron test. $schedule_cron = $this->try_schedule_cron(); if ( $schedule_cron ) { $this->errors[] = $this->message( $schedule_cron, 'error' ); } $this->maybe_show_errors( $this->errors ); $this->maybe_show_warnings( $this->warnings ); if ( ! $this->errors && ! $this->warnings && ! $this->suppress_success_message ) { $this->alert( esc_html__( 'Yeah!', 'backwpup' ), esc_html__( 'All tests passed without errors.', 'backwpup' ), 'success' ); } } /** * Check if scheduling cron seems to be working. * * @return string|null Error message or null when all is ok. */ private function try_schedule_cron(): ?string { $next_run = wp_next_scheduled( 'wp_update_plugins' ); if ( ! $next_run ) { $next_run = wp_next_scheduled( 'wp_version_check' ); } if ( ! $next_run ) { $next_run = wp_next_scheduled( 'wp_update_themes' ); } if ( ! $next_run ) { $next_run = wp_next_scheduled( 'wp_scheduled_delete' ); } if ( $next_run && $next_run < ( time() - 3600 * 12 ) ) { return $this->message( esc_html__( 'WP-Cron seems to be broken. But it is needed to run scheduled jobs.', 'backwpup' ), 'error' ); } return null; } /** * Show Error Messages. * * @param string[] $errors An array of error messages. */ private function maybe_show_errors( $errors ) { if ( $errors ) { $this->alert( '', esc_html__( 'There are errors. Please correct them, or BackWPup cannot work.', 'backwpup' ), 'error', $this->show_messages_list( $errors ) ); // Clean the list. $this->errors = []; } } /** * Show Warning Messages. * * @param string[] $warnings A list of warning messages. */ private function maybe_show_warnings( $warnings ) { if ( $warnings ) { $this->alert( '', esc_html__( 'There are some warnings. BackWPup will work, but with limitations.', 'backwpup' ), 'warning', $this->show_messages_list( $warnings ) ); // $this->show_messages_list( $warnings ); // Clean the list. $this->warnings = []; } } /** * Build Message. * * @param string $message The message string. * @param string $type The type of the message. E.g. 'error', 'warning', 'success'. * * @return string The markup */ private function message( $message, $type ) { return '<p class="' . sanitize_key( $type ) . '">' . $message . '</p>'; } /** * Returns Messages List. * * @param string[] $messages A list of messages to output. * * @return string */ private function show_messages_list( array $messages ) { $output = '<ul>'; foreach ( $messages as $message ) { $output .= '<li>' . wp_kses_post( $message ) . '</li>'; } $output .= '</ul>'; return $output; } /** * WordPress Alert. * * @param string $title The title for the alert. * @param string $message The alert message. * @param string $type The type of the alert. * @param string $more_info More information. */ private function alert( $title, $message, $type, $more_info = '' ) { if ( ! $message ) { return; } echo '<div class="notice notice-' . sanitize_key( $type ) . '">'; if ( $title ) { echo '<p><strong>' . esc_html( $title ) . '</strong></p>'; } echo '<p>' . wp_kses_post( $message ) . '</p>'; echo wp_kses_post( $more_info ); echo '</div>'; } }
[-] class-system-tests-runner.php
[edit]
[-] class-jobtype-dbdump.php
[edit]
[-] class-destination-rsc.php
[edit]
[-] class-encryption.php
[edit]
[-] class-destination-downloader-factory.php
[edit]
[-] class-destination-downloader-interface.php
[edit]
[-] class-destination-ftp-type-ftp.php
[edit]
[-] class-path-fixer.php
[edit]
[-] class-message-box.php
[edit]
[-] class-destination-dropbox-api.php
[edit]
[-] class-option.php
[edit]
[-] class-destination-dropbox-api-request-exception.php
[edit]
[-] class-page-about.php
[edit]
[-] class-migrate.php
[edit]
[-] class-system-requirements.php
[edit]
[-] class-adminbar.php
[edit]
[-] class-msazure-destination-configuration.php
[edit]
[-] class-job.php
[edit]
[-] class-destination-ftp-type-exception.php
[edit]
[-] class-destination-sugarsync-api.php
[edit]
[-] class-download-file-interface.php
[edit]
[-] class-encryption-fallback.php
[edit]
[-] BackWPup.php
[edit]
[-] class-page-backwpup.php
[edit]
[-] class-destination-downloader-data.php
[edit]
[-] class-mysqldump-exception.php
[edit]
[-] class-s3-destination.php
[edit]
[-] class-destination-ftp.php
[edit]
[-] class-cron.php
[edit]
[+]
Notice
[-] class-destination-downloader.php
[edit]
[-] class-destinations.php
[edit]
[-] class-destination-ftp-downloader.php
[edit]
[-] class-destination-dropbox-downloader.php
[edit]
[-] class-download-handler.php
[edit]
[-] class-destination-dropbox.php
[edit]
[-] class-system-tests.php
[edit]
[-] class-destination-folder-downloader.php
[edit]
[-] class-destination-ftp-type.php
[edit]
[-] class-thirdparties.php
[edit]
[-] class-jobtype-wpplugin.php
[edit]
[-] class-directory.php
[edit]
[-] class-recursive-directory.php
[edit]
[-] class-destination-msazure-downloader.php
[edit]
[-] class-destination-connect-interface.php
[edit]
[-] class-install.php
[edit]
[-] class-admin.php
[edit]
[-] class-jobtype-file.php
[edit]
[-] functions.php
[edit]
[+]
Utils
[+]
ThirdParty
[-] class-destination-s3-downloader.php
[edit]
[-] class-destination-rsc-downloader.php
[edit]
[-] class-destination-sugarsync-downloader.php
[edit]
[-] class-destination-email.php
[edit]
[+]
..
[-] class-mysqldump.php
[edit]
[-] class-page-firstbackup.php
[edit]
[-] class-jobtype-wpexp.php
[edit]
[-] class-jobtype-dbcheck.php
[edit]
[-] class-file.php
[edit]
[-] class-sanitize-path.php
[edit]
[+]
Settings
[-] class-destination-s3.php
[edit]
[-] class-page-logs.php
[edit]
[-] class-factory-exception.php
[edit]
[-] class-page-restore.php
[edit]
[+]
dependencies
[-] class-create-archive-exception.php
[edit]
[-] class-page-editjob.php
[edit]
[-] class-page-backups.php
[edit]
[-] class-destination-dropbox-api-exception.php
[edit]
[-] class-create-archive.php
[edit]
[-] class-encryption-openssl.php
[edit]
[-] class-destination-onedrive-config-trait.php
[edit]
[-] class-destination-download-exception.php
[edit]
[-] class-download-file.php
[edit]
[-] class-page-settings.php
[edit]
[-] class-destination-msazure.php
[edit]
[-] class-page-onboarding.php
[edit]
[-] class-destination-folder.php
[edit]
[-] class-jobtypes.php
[edit]
[-] class-destination-connect-exception.php
[edit]
[-] class-destination-sugarsync.php
[edit]
[-] class-page-jobs.php
[edit]
[-] class-destination-sugarsync-api-exception.php
[edit]
[-] class-encryption-mcrypt.php
[edit]