Documentation

AbstractFtpAdapter extends AbstractAdapter
in package

Table of Contents

$configurable  : array<string|int, mixed>
$connection  : mixed
$enableTimestampsOnUnixListings  : bool
True to enable timestamps for FTP servers that return unix-style listings.
$host  : string
$passive  : bool
$pathPrefix  : string|null
$pathSeparator  : string
$permPrivate  : int
$permPublic  : int
$port  : int
$root  : string|null
$safeStorage  : SafeStorage
$separator  : string
$ssl  : bool
$systemType  : string
$timeout  : int
__construct()  : mixed
Constructor.
__destruct()  : mixed
Disconnect on destruction.
applyPathPrefix()  : string
Prefix a path.
connect()  : mixed
Establish a connection.
disconnect()  : mixed
Close the connection.
ensureDirectory()  : mixed
Ensure a directory exists.
getConnection()  : mixed
getHost()  : string
Returns the host.
getPassword()  : string
Returns the password.
getPathPrefix()  : string|null
Get the path prefix.
getPermPrivate()  : int
Get the private permission value.
getPermPublic()  : int
Get the public permission value.
getPort()  : int
Returns the ftp port.
getRoot()  : string
Returns the root folder to work from.
getSize()  : mixed
getSystemType()  : string
Return the FTP system type.
getTimeout()  : int
Returns the amount of seconds before the connection will timeout.
getUsername()  : string
Returns the ftp username.
getVisibility()  : mixed
has()  : mixed
isConnected()  : bool
Check if a connection is active.
listContents()  : mixed
removeDotDirectories()  : array<string|int, mixed>
Filter out dot-directories.
removePathPrefix()  : string
Remove a path prefix.
setConfig()  : $this
Set the config.
setEnableTimestampsOnUnixListings()  : $this
True to enable timestamps for FTP servers that return unix-style listings.
setHost()  : $this
Set the host.
setPassword()  : $this
Set the ftp password.
setPathPrefix()  : void
Set the path prefix.
setPermPrivate()  : $this
Set the private permission value.
setPermPublic()  : $this
Set the public permission value.
setPort()  : $this
Set the ftp port.
setRoot()  : $this
Set the root folder to work from.
setSystemType()  : $this
Set the FTP system type (windows or unix).
setTimeout()  : $this
Set the amount of seconds before the connection should timeout.
setUsername()  : $this
Set ftp username.
detectSystemType()  : string
Get the system type from a listing item.
detectType()  : string
Get the file type from the permissions.
escapePath()  : mixed
listDirectoryContents()  : mixed
normalizeListing()  : array<string|int, mixed>
Normalize a directory listing.
normalizeObject()  : array<string|int, mixed>
Normalize a file entry.
normalizePermissions()  : int
Normalize a permissions string.
normalizeUnixObject()  : array<string|int, mixed>
Normalize a Unix file entry.
normalizeUnixTimestamp()  : int
Only accurate to the minute (current year), or to the day.
normalizeWindowsObject()  : array<string|int, mixed>
Normalize a Windows/DOS file entry.
sortListing()  : array<string|int, mixed>
Sort a directory listing.

Properties

$enableTimestampsOnUnixListings

True to enable timestamps for FTP servers that return unix-style listings.

protected bool $enableTimestampsOnUnixListings = false

Methods

__construct()

Constructor.

public __construct(array<string|int, mixed> $config) : mixed
Parameters
$config : array<string|int, mixed>
Return values
mixed

__destruct()

Disconnect on destruction.

public __destruct() : mixed
Return values
mixed

applyPathPrefix()

Prefix a path.

public applyPathPrefix(string $path) : string
Parameters
$path : string
Return values
string

prefixed path

connect()

Establish a connection.

public abstract connect() : mixed
Return values
mixed

disconnect()

Close the connection.

public abstract disconnect() : mixed
Return values
mixed

ensureDirectory()

Ensure a directory exists.

public ensureDirectory(string $dirname) : mixed
Parameters
$dirname : string
Return values
mixed

getPassword()

Returns the password.

public getPassword() : string
Return values
string

password

getPathPrefix()

Get the path prefix.

public getPathPrefix() : string|null
Return values
string|null

path prefix or null if pathPrefix is empty

getPermPrivate()

Get the private permission value.

public getPermPrivate() : int
Return values
int

getPermPublic()

Get the public permission value.

public getPermPublic() : int
Return values
int

getRoot()

Returns the root folder to work from.

public getRoot() : string
Return values
string

getSize()

public getSize(mixed $path) : mixed
Parameters
$path : mixed
Tags
inheritdoc
Return values
mixed

getSystemType()

Return the FTP system type.

public getSystemType() : string
Return values
string

getTimeout()

Returns the amount of seconds before the connection will timeout.

public getTimeout() : int
Return values
int

getUsername()

Returns the ftp username.

public getUsername() : string
Return values
string

username

getVisibility()

public getVisibility(mixed $path) : mixed
Parameters
$path : mixed
Tags
inheritdoc
Return values
mixed

has()

public has(mixed $path) : mixed
Parameters
$path : mixed
Tags
inheritdoc
Return values
mixed

isConnected()

Check if a connection is active.

public abstract isConnected() : bool
Return values
bool

listContents()

public listContents([mixed $directory = '' ][, mixed $recursive = false ]) : mixed
Parameters
$directory : mixed = ''
$recursive : mixed = false
Tags
inheritdoc
Return values
mixed

removeDotDirectories()

Filter out dot-directories.

public removeDotDirectories(array<string|int, mixed> $list) : array<string|int, mixed>
Parameters
$list : array<string|int, mixed>
Return values
array<string|int, mixed>

removePathPrefix()

Remove a path prefix.

public removePathPrefix(string $path) : string
Parameters
$path : string
Return values
string

path without the prefix

setConfig()

Set the config.

public setConfig(array<string|int, mixed> $config) : $this
Parameters
$config : array<string|int, mixed>
Return values
$this

setEnableTimestampsOnUnixListings()

True to enable timestamps for FTP servers that return unix-style listings.

public setEnableTimestampsOnUnixListings([bool $bool = false ]) : $this
Parameters
$bool : bool = false
Return values
$this

setHost()

Set the host.

public setHost(string $host) : $this
Parameters
$host : string
Return values
$this

setPassword()

Set the ftp password.

public setPassword(string $password) : $this
Parameters
$password : string
Return values
$this

setPathPrefix()

Set the path prefix.

public setPathPrefix(string $prefix) : void
Parameters
$prefix : string
Return values
void

setPermPrivate()

Set the private permission value.

public setPermPrivate(int $permPrivate) : $this
Parameters
$permPrivate : int
Return values
$this

setPermPublic()

Set the public permission value.

public setPermPublic(int $permPublic) : $this
Parameters
$permPublic : int
Return values
$this

setPort()

Set the ftp port.

public setPort(int|string $port) : $this
Parameters
$port : int|string
Return values
$this

setRoot()

Set the root folder to work from.

public setRoot(string $root) : $this
Parameters
$root : string
Return values
$this

setSystemType()

Set the FTP system type (windows or unix).

public setSystemType(string $systemType) : $this
Parameters
$systemType : string
Return values
$this

setTimeout()

Set the amount of seconds before the connection should timeout.

public setTimeout(int $timeout) : $this
Parameters
$timeout : int
Return values
$this

setUsername()

Set ftp username.

public setUsername(string $username) : $this
Parameters
$username : string
Return values
$this

detectSystemType()

Get the system type from a listing item.

protected detectSystemType(string $item) : string
Parameters
$item : string
Return values
string

the system type

detectType()

Get the file type from the permissions.

protected detectType(string $permissions) : string
Parameters
$permissions : string
Return values
string

file type

escapePath()

protected escapePath(mixed $path) : mixed
Parameters
$path : mixed
Return values
mixed

listDirectoryContents()

protected abstract listDirectoryContents(mixed $directory[, mixed $recursive = false ]) : mixed
Parameters
$directory : mixed
$recursive : mixed = false
Return values
mixed

normalizeListing()

Normalize a directory listing.

protected normalizeListing(array<string|int, mixed> $listing[, string $prefix = '' ]) : array<string|int, mixed>
Parameters
$listing : array<string|int, mixed>
$prefix : string = ''
Return values
array<string|int, mixed>

directory listing

normalizeObject()

Normalize a file entry.

protected normalizeObject(string $item, string $base) : array<string|int, mixed>
Parameters
$item : string
$base : string
Tags
throws
NotSupportedException
Return values
array<string|int, mixed>

normalized file array

normalizePermissions()

Normalize a permissions string.

protected normalizePermissions(string $permissions) : int
Parameters
$permissions : string
Return values
int

normalizeUnixObject()

Normalize a Unix file entry.

protected normalizeUnixObject(string $item, string $base) : array<string|int, mixed>

Given $item contains: '-rw-r--r-- 1 ftp ftp 409 Aug 19 09:01 file1.txt'

This function will return: [ 'type' => 'file', 'path' => 'file1.txt', 'visibility' => 'public', 'size' => 409, 'timestamp' => 1566205260 ]

Parameters
$item : string
$base : string
Return values
array<string|int, mixed>

normalized file array

normalizeUnixTimestamp()

Only accurate to the minute (current year), or to the day.

protected normalizeUnixTimestamp(string $month, string $day, string $timeOrYear) : int

Inadequacies in timestamp accuracy are due to limitations of the FTP 'LIST' command

Note: The 'MLSD' command is a machine-readable replacement for 'LIST' but many FTP servers do not support it :(

Parameters
$month : string

e.g. 'Aug'

$day : string

e.g. '19'

$timeOrYear : string

e.g. '09:01' OR '2015'

Return values
int

normalizeWindowsObject()

Normalize a Windows/DOS file entry.

protected normalizeWindowsObject(string $item, string $base) : array<string|int, mixed>
Parameters
$item : string
$base : string
Return values
array<string|int, mixed>

normalized file array

sortListing()

Sort a directory listing.

protected sortListing(array<string|int, mixed> $result) : array<string|int, mixed>
Parameters
$result : array<string|int, mixed>
Return values
array<string|int, mixed>

sorted listing

Search results