WP_Filesystem_SSH2::__construct()publicWP 2.7.0

Constructor.

Method of the class: WP_Filesystem_SSH2{}

No Hooks.

Return

null. Nothing (null).

Usage

$WP_Filesystem_SSH2 = new WP_Filesystem_SSH2();
$WP_Filesystem_SSH2->__construct( $opt );
$opt(array)
-
Default: ''

Changelog

Since 2.7.0 Introduced.

WP_Filesystem_SSH2::__construct() code WP 6.5.2

public function __construct( $opt = '' ) {
	$this->method = 'ssh2';
	$this->errors = new WP_Error();

	// Check if possible to use ssh2 functions.
	if ( ! extension_loaded( 'ssh2' ) ) {
		$this->errors->add( 'no_ssh2_ext', __( 'The ssh2 PHP extension is not available' ) );
		return;
	}

	// Set defaults:
	if ( empty( $opt['port'] ) ) {
		$this->options['port'] = 22;
	} else {
		$this->options['port'] = $opt['port'];
	}

	if ( empty( $opt['hostname'] ) ) {
		$this->errors->add( 'empty_hostname', __( 'SSH2 hostname is required' ) );
	} else {
		$this->options['hostname'] = $opt['hostname'];
	}

	// Check if the options provided are OK.
	if ( ! empty( $opt['public_key'] ) && ! empty( $opt['private_key'] ) ) {
		$this->options['public_key']  = $opt['public_key'];
		$this->options['private_key'] = $opt['private_key'];

		$this->options['hostkey'] = array( 'hostkey' => 'ssh-rsa,ssh-ed25519' );

		$this->keys = true;
	} elseif ( empty( $opt['username'] ) ) {
		$this->errors->add( 'empty_username', __( 'SSH2 username is required' ) );
	}

	if ( ! empty( $opt['username'] ) ) {
		$this->options['username'] = $opt['username'];
	}

	if ( empty( $opt['password'] ) ) {
		// Password can be blank if we are using keys.
		if ( ! $this->keys ) {
			$this->errors->add( 'empty_password', __( 'SSH2 password is required' ) );
		} else {
			$this->options['password'] = null;
		}
	} else {
		$this->options['password'] = $opt['password'];
	}
}