wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php	Tue Jun 09 03:35:32 2015 +0200
@@ -9,23 +9,25 @@
 /**
  * WordPress Filesystem Class for implementing FTP Sockets.
  *
- * @since 2.5
+ * @since 2.5.0
  * @package WordPress
  * @subpackage Filesystem
  * @uses WP_Filesystem_Base Extends class
  */
 class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
-	var $ftp = false;
-	var $errors = null;
-	var $options = array();
+	/**
+	 * @var ftp
+	 */
+	public $ftp;
 
-	function __construct($opt = '') {
+	public function __construct($opt = '') {
 		$this->method = 'ftpsockets';
 		$this->errors = new WP_Error();
 
 		// Check if possible to use ftp functions.
-		if ( ! @include_once ABSPATH . 'wp-admin/includes/class-ftp.php' )
-				return false;
+		if ( ! @include_once( ABSPATH . 'wp-admin/includes/class-ftp.php' ) ) {
+			return;
+		}
 		$this->ftp = new ftp();
 
 		if ( empty($opt['port']) )
@@ -38,9 +40,6 @@
 		else
 			$this->options['hostname'] = $opt['hostname'];
 
-		if ( ! empty($opt['base']) )
-			$this->wp_base = $opt['base'];
-
 		// Check if the options provided are OK.
 		if ( empty ($opt['username']) )
 			$this->errors->add('empty_username', __('FTP username is required'));
@@ -53,7 +52,7 @@
 			$this->options['password'] = $opt['password'];
 	}
 
-	function connect() {
+	public function connect() {
 		if ( ! $this->ftp )
 			return false;
 
@@ -80,7 +79,11 @@
 		return true;
 	}
 
-	function get_contents( $file ) {
+	/**
+	 * @param string $file
+	 * @return false|string
+	 */
+	public function get_contents( $file ) {
 		if ( ! $this->exists($file) )
 			return false;
 
@@ -112,12 +115,21 @@
 		unlink($temp);
 		return $contents;
 	}
-
-	function get_contents_array($file) {
+	/**
+	 * @param string $file
+	 * @return array
+	 */
+	public function get_contents_array($file) {
 		return explode("\n", $this->get_contents($file) );
 	}
 
-	function put_contents($file, $contents, $mode = false ) {
+	/**
+	 * @param string $file
+	 * @param string $contents
+	 * @param int|bool $mode
+	 * @return bool
+	 */
+	public function put_contents($file, $contents, $mode = false ) {
 		$temp = wp_tempnam( $file );
 		if ( ! $temphandle = @fopen($temp, 'w+') ) {
 			unlink($temp);
@@ -151,22 +163,24 @@
 		return $ret;
 	}
 
-	function cwd() {
+	public function cwd() {
 		$cwd = $this->ftp->pwd();
 		if ( $cwd )
 			$cwd = trailingslashit($cwd);
 		return $cwd;
 	}
 
-	function chdir($file) {
+	public function chdir($file) {
 		return $this->ftp->chdir($file);
 	}
 
-	function chgrp($file, $group, $recursive = false ) {
-		return false;
-	}
-
-	function chmod($file, $mode = false, $recursive = false ) {
+	/**
+	 * @param string $file
+	 * @param int|bool $mode
+	 * @param bool $recursive
+	 * @return bool
+	 */
+	public function chmod($file, $mode = false, $recursive = false ) {
 		if ( ! $mode ) {
 			if ( $this->is_file($file) )
 				$mode = FS_CHMOD_FILE;
@@ -187,22 +201,38 @@
 		return $this->ftp->chmod($file, $mode);
 	}
 
-	function owner($file) {
+	/**
+	 * @param string $file
+	 * @return string
+	 */
+	public function owner($file) {
 		$dir = $this->dirlist($file);
 		return $dir[$file]['owner'];
 	}
-
-	function getchmod($file) {
+	/**
+	 * @param string $file
+	 * @return string
+	 */
+	public function getchmod($file) {
 		$dir = $this->dirlist($file);
 		return $dir[$file]['permsn'];
 	}
-
-	function group($file) {
+	/**
+	 * @param string $file
+	 * @return string
+	 */
+	public function group($file) {
 		$dir = $this->dirlist($file);
 		return $dir[$file]['group'];
 	}
-
-	function copy($source, $destination, $overwrite = false, $mode = false) {
+	/**
+	 * @param string $source
+	 * @param string $destination
+	 * @param bool $overwrite
+	 * @param int|bool $mode
+	 * @return bool
+	 */
+	public function copy($source, $destination, $overwrite = false, $mode = false) {
 		if ( ! $overwrite && $this->exists($destination) )
 			return false;
 
@@ -212,12 +242,22 @@
 
 		return $this->put_contents($destination, $content, $mode);
 	}
-
-	function move($source, $destination, $overwrite = false ) {
+	/**
+	 * @param string $source
+	 * @param string $destination
+	 * @param bool $overwrite
+	 * @return bool
+	 */
+	public function move($source, $destination, $overwrite = false ) {
 		return $this->ftp->rename($source, $destination);
 	}
-
-	function delete($file, $recursive = false, $type = false) {
+	/**
+	 * @param string $file
+	 * @param bool $recursive
+	 * @param string $type
+	 * @return bool
+	 */
+	public function delete($file, $recursive = false, $type = false) {
 		if ( empty($file) )
 			return false;
 		if ( 'f' == $type || $this->is_file($file) )
@@ -228,13 +268,26 @@
 		return $this->ftp->mdel($file);
 	}
 
-	function exists( $file ) {
+	/**
+	 * @param string $file
+	 * @return bool
+	 */
+	public function exists( $file ) {
 		$list = $this->ftp->nlist( $file );
+
+		if ( empty( $list ) && $this->is_dir( $file ) ) {
+			return true; // File is an empty directory.
+		}
+
 		return !empty( $list ); //empty list = no file, so invert.
-		// return $this->ftp->is_exists($file); has issues with ABOR+426 responses on the ncFTPd server
+		// Return $this->ftp->is_exists($file); has issues with ABOR+426 responses on the ncFTPd server.
 	}
 
-	function is_file($file) {
+	/**
+	 * @param string $file
+	 * @return bool
+	 */
+	public function is_file($file) {
 		if ( $this->is_dir($file) )
 			return false;
 		if ( $this->exists($file) )
@@ -242,7 +295,11 @@
 		return false;
 	}
 
-	function is_dir($path) {
+	/**
+	 * @param string $path
+	 * @return bool
+	 */
+	public function is_dir($path) {
 		$cwd = $this->cwd();
 		if ( $this->chdir($path) ) {
 			$this->chdir($cwd);
@@ -251,31 +308,63 @@
 		return false;
 	}
 
-	function is_readable($file) {
+	/**
+	 * @param string $file
+	 * @return bool
+	 */
+	public function is_readable($file) {
 		return true;
 	}
 
-	function is_writable($file) {
+	/**
+	 * @param string $file
+	 * @return bool
+	 */
+	public function is_writable($file) {
 		return true;
 	}
 
-	function atime($file) {
+	/**
+	 * @param string $file
+	 * @return bool
+	 */
+	public function atime($file) {
 		return false;
 	}
 
-	function mtime($file) {
+	/**
+	 * @param string $file
+	 * @return int
+	 */
+	public function mtime($file) {
 		return $this->ftp->mdtm($file);
 	}
 
-	function size($file) {
+	/**
+	 * @param string $file
+	 * @return int
+	 */
+	public function size($file) {
 		return $this->ftp->filesize($file);
 	}
-
-	function touch($file, $time = 0, $atime = 0 ) {
+	/**
+	 * @param string $file
+	 * @param int $time
+	 * @param int $atime
+	 * @return bool
+	 */
+	public function touch($file, $time = 0, $atime = 0 ) {
 		return false;
 	}
 
-	function mkdir($path, $chmod = false, $chown = false, $chgrp = false ) {
+	/**
+	 * @param string $path
+	 * @param mixed $chmod
+	 * @param mixed $chown
+	 * @param mixed $chgrp
+	 * @return bool
+	 */
+	public function mkdir($path, $chmod = false, $chown = false, $chgrp = false ) {
 		$path = untrailingslashit($path);
 		if ( empty($path) )
 			return false;
@@ -285,18 +374,24 @@
 		if ( ! $chmod )
 			$chmod = FS_CHMOD_DIR;
 		$this->chmod($path, $chmod);
-		if ( $chown )
-			$this->chown($path, $chown);
-		if ( $chgrp )
-			$this->chgrp($path, $chgrp);
 		return true;
 	}
 
-	function rmdir($path, $recursive = false ) {
+	/**
+	 * @param sting $path
+	 * @param bool $recursive
+	 */
+	public function rmdir($path, $recursive = false ) {
 		$this->delete($path, $recursive);
 	}
 
-	function dirlist($path = '.', $include_hidden = true, $recursive = false ) {
+	/**
+	 * @param string $path
+	 * @param bool $include_hidden
+	 * @param bool $recursive
+	 * @return bool|array
+	 */
+	public function dirlist($path = '.', $include_hidden = true, $recursive = false ) {
 		if ( $this->is_file($path) ) {
 			$limit_file = basename($path);
 			$path = dirname($path) . '/';
@@ -345,7 +440,7 @@
 		return $ret;
 	}
 
-	function __destruct() {
+	public function __destruct() {
 		$this->ftp->quit();
 	}
 }