wppaste
WordPress

WP_Filesystem_FTPext

Since
2.5.0
Source
wp-admin/includes/class-wp-filesystem-ftpext.php:16
WordPress Filesystem Class for implementing FTP.

Compatibility

WordPress
since 2.5.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Properties · 1

Methods · 28

Source code

class WP_Filesystem_FTPext extends WP_Filesystem_Base { 	/**	 * @since 2.5.0	 * @var resource	 */	public $link; 	/**	 * Constructor.	 *	 * @since 2.5.0	 *	 * @param array $opt	 */	public function __construct( $opt = '' ) {		$this->method = 'ftpext';		$this->errors = new WP_Error(); 		// Check if possible to use ftp functions.		if ( ! extension_loaded( 'ftp' ) ) {			$this->errors->add( 'no_ftp_ext', __( 'The ftp PHP extension is not available' ) );			return;		} 		// This class uses the timeout on a per-connection basis, others use it on a per-action basis.		if ( ! defined( 'FS_TIMEOUT' ) ) {			define( 'FS_TIMEOUT', 4 * MINUTE_IN_SECONDS );		} 		if ( empty( $opt['port'] ) ) {			$this->options['port'] = 21;		} else {			$this->options['port'] = $opt['port'];		} 		if ( empty( $opt['hostname'] ) ) {			$this->errors->add( 'empty_hostname', __( 'FTP hostname is required' ) );		} else {			$this->options['hostname'] = $opt['hostname'];		} 		// Check if the options provided are OK.		if ( empty( $opt['username'] ) ) {			$this->errors->add( 'empty_username', __( 'FTP username is required' ) );		} else {			$this->options['username'] = $opt['username'];		} 		if ( empty( $opt['password'] ) ) {			$this->errors->add( 'empty_password', __( 'FTP password is required' ) );		} else {			$this->options['password'] = $opt['password'];		} 		$this->options['ssl'] = false; 		if ( isset( $opt['connection_type'] ) && 'ftps' === $opt['connection_type'] ) {			$this->options['ssl'] = true;		}	} 	/**	 * Connects filesystem.	 *	 * @since 2.5.0	 *	 * @return bool True on success, false on failure.	 */	public function connect() {		if ( isset( $this->options['ssl'] ) && $this->options['ssl'] && function_exists( 'ftp_ssl_connect' ) ) {			$this->link = @ftp_ssl_connect( $this->options['hostname'], $this->options['port'], FS_CONNECT_TIMEOUT );		} else {			$this->link = @ftp_connect( $this->options['hostname'], $this->options['port'], FS_CONNECT_TIMEOUT );		} 		if ( ! $this->link ) {			$this->errors->add(				'connect',				sprintf(

Changelog

Introduced in 2.5.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.7.7 tag, from src/wp-admin/includes/class-wp-filesystem-ftpext.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.