phpBB API Documentation
Class

phpbb\filesystem

class filesystem extends filesystem

Methods

__construct()

Constructor

from filesystem
chgrp(string|array|Traversable $files, string $group, bool $recursive = false)

Change owner group of files/directories

from filesystem
chmod(string|array|Traversable $files, int $perms = null, bool $recursive = false, bool $force_chmod_link = false)

Global function for chmodding directories and files for internal use

from filesystem
chown(string|array|Traversable $files, string $user, bool $recursive = false)

Change owner group of files/directories

from filesystem
string clean_path(string $path)

Eliminates useless .

from filesystem
copy(string $origin_file, string $target_file, bool $override = false)

Copies a file.

from filesystem
dump_file(string $filename, string $content)

Atomically dumps content into a file.

from filesystem
bool exists(string|array|Traversable $files)

Checks the existence of files or directories.

from filesystem
is_absolute_path(string $path)

Checks if a path is absolute or not

from filesystem
bool is_readable(string|array|Traversable $files, bool $recursive = false)

Checks if files/directories are readable

from filesystem
bool is_writable(string|array|Traversable $files, bool $recursive = false)

Test if a file/directory is writable

from filesystem
string make_path_relative(string $end_path, string $start_path)

Given an existing path, convert it to a path relative to a given starting path

from filesystem
mirror(string $origin_dir, string $target_dir, Traversable $iterator = null, array $options = array())

Mirrors a directory to another.

from filesystem
mkdir(string|array|Traversable $dirs, int $mode = 511)

Creates a directory recursively.

from filesystem
phpbb_chmod($files, int $perms = null, bool $recursive = false, bool $force_chmod_link = false)

Global function for chmodding directories and files for internal use

from filesystem
string realpath(string $path)

A wrapper for PHP's realpath

from filesystem
remove(string|array|Traversable $files)

Removes files or directories.

from filesystem
rename(string $origin, string $target, bool $overwrite = false)

Renames a file or a directory.

from filesystem
symlink(string $origin_dir, string $target_dir, bool $copy_on_windows = false)

Creates a symbolic link or copy a directory.

from filesystem
touch(string|array|Traversable $files, int $time = null, int $access_time = null)

Sets access and modification time of file.

from filesystem

Details

in filesystem at line 47
public __construct()

Constructor

in filesystem at line 57
public chgrp(string|array|Traversable $files, string $group, bool $recursive = false)

Change owner group of files/directories

Parameters

string|array|Traversable $files The file(s)/directorie(s) to change group
string $group The group that should own the files/directories
bool $recursive If the group should be changed recursively

Exceptions

filesystem_exception the filename which triggered the error can be retrieved by filesystemexception::getfilename()

in filesystem at line 77
public chmod(string|array|Traversable $files, int $perms = null, bool $recursive = false, bool $force_chmod_link = false)

Global function for chmodding directories and files for internal use

The function accepts filesysteminterface::CHMOD flags in the permission argument or the user can specify octal values (or any integer if it makes sense). All directories will have an execution bit appended, if the user group (owner, group or other) has any bit specified.

Parameters

string|array|Traversable $files The file/directory to be chmodded
int $perms Permissions to set
bool $recursive If the permissions should be changed recursively
bool $force_chmod_link Try to apply permissions to symlinks as well

Exceptions

filesystem_exception the filename which triggered the error can be retrieved by filesystemexception::getfilename()

in filesystem at line 143
public chown(string|array|Traversable $files, string $user, bool $recursive = false)

Change owner group of files/directories

Parameters

string|array|Traversable $files The file(s)/directorie(s) to change group
string $user The owner user name
bool $recursive Whether change the owner recursively or not

Exceptions

filesystem_exception the filename which triggered the error can be retrieved by filesystemexception::getfilename()

in filesystem at line 163
public string clean_path(string $path)

Eliminates useless .

and .. components from specified path.

Parameters

string $path Path to clean

Return Value

string Cleaned path

in filesystem at line 190
public copy(string $origin_file, string $target_file, bool $override = false)

Copies a file.

This method only copies the file if the origin file is newer than the target file.

By default, if the target already exists, it is not overridden.

Parameters

string $origin_file The original filename
string $target_file The target filename
bool $override Whether to override an existing file or not

Exceptions

filesystem_exception When the file cannot be copied

in filesystem at line 205
public dump_file(string $filename, string $content)

Atomically dumps content into a file.

Parameters

string $filename The file to be written to.
string $content The data to write into the file.

Exceptions

filesystem_exception When the file cannot be written

in filesystem at line 220
public bool exists(string|array|Traversable $files)

Checks the existence of files or directories.

Parameters

string|array|Traversable $files files/directories to check

Return Value

bool Returns true if all files/directories exist, false otherwise

in filesystem at line 228
public is_absolute_path(string $path)

Checks if a path is absolute or not

Parameters

string $path Path to check

in filesystem at line 236
public bool is_readable(string|array|Traversable $files, bool $recursive = false)

Checks if files/directories are readable

Parameters

string|array|Traversable $files files/directories to check
bool $recursive Whether or not directories should be checked recursively

Return Value

bool True when the files/directories are readable, otherwise false.

in filesystem at line 260
public bool is_writable(string|array|Traversable $files, bool $recursive = false)

Test if a file/directory is writable

Parameters

string|array|Traversable $files files/directories to perform write test on
bool $recursive Whether or not directories should be checked recursively

Return Value

bool True when the files/directories are writable, otherwise false.

in filesystem at line 306
public string make_path_relative(string $end_path, string $start_path)

Given an existing path, convert it to a path relative to a given starting path

Parameters

string $end_path Absolute path of target
string $start_path Absolute path where traversal begins

Return Value

string Path of target relative to starting path

in filesystem at line 314
public mirror(string $origin_dir, string $target_dir, Traversable $iterator = null, array $options = array())

Mirrors a directory to another.

Parameters

string $origin_dir The origin directory
string $target_dir The target directory
Traversable $iterator A Traversable instance
array $options An array of boolean options Valid options are: - $options['override'] Whether to override an existing file on copy or not (see copy()) - $options['copyonwindows'] Whether to copy files instead of links on Windows (see symlink()) - $options['delete'] Whether to delete files that are not in the source directory (defaults to false)

Exceptions

filesystem_exception When the file cannot be copied. The filename which triggered the error can be retrieved by filesystemexception::getfilename()

in filesystem at line 332
public mkdir(string|array|Traversable $dirs, int $mode = 511)

Creates a directory recursively.

Parameters

string|array|Traversable $dirs The directory path
int $mode The directory mode

Exceptions

filesystem_exception On any directory creation failure The filename which triggered the error can be retrieved by filesystemexception::getfilename()

in filesystem at line 350
public phpbb_chmod($files, int $perms = null, bool $recursive = false, bool $force_chmod_link = false)

Global function for chmodding directories and files for internal use

This function determines owner and group whom the file belongs to and user and group of PHP and then set safest possible file permissions. The function determines owner and group from common.php file and sets the same to the provided file. The function uses bit fields to build the permissions. The function sets the appropiate execute bit on directories.

Supported constants representing bit fields are:

filesysteminterface::CHMODALL - all permissions (7) filesysteminterface::CHMODREAD - read permission (4) filesysteminterface::CHMODWRITE - write permission (2) filesysteminterface::CHMODEXECUTE - execute permission (1)

NOTE: The function uses POSIX extension and fileowner()/filegroup() functions. If any of them is disabled, this function tries to build proper permissions, by calling isreadable() and iswritable() functions.

Parameters

$files
int $perms Permissions to set
bool $recursive If the permissions should be changed recursively
bool $force_chmod_link Try to apply permissions to symlinks as well

Exceptions

filesystem_exception the filename which triggered the error can be retrieved by filesystemexception::getfilename()

in filesystem at line 487
public string realpath(string $path)

A wrapper for PHP's realpath

Try to resolve realpath when PHP's realpath is not available, or known to be buggy.

Parameters

string $path Path to resolve

Return Value

string Resolved path

in filesystem at line 515
public remove(string|array|Traversable $files)

Removes files or directories.

Parameters

string|array|Traversable $files A filename, an array of files, or a \Traversable instance to remove

Exceptions

filesystem_exception When removal fails. The filename which triggered the error can be retrieved by filesystemexception::getfilename()

in filesystem at line 535
public rename(string $origin, string $target, bool $overwrite = false)

Renames a file or a directory.

Parameters

string $origin The origin filename or directory
string $target The new filename or directory
bool $overwrite Whether to overwrite the target if it already exists

Exceptions

filesystem_exception When target file or directory already exists, or origin cannot be renamed.

Creates a symbolic link or copy a directory.

Parameters

string $origin_dir The origin directory path
string $target_dir The symbolic link name
bool $copy_on_windows Whether to copy files if on Windows

Exceptions

filesystem_exception When symlink fails

in filesystem at line 568
public touch(string|array|Traversable $files, int $time = null, int $access_time = null)

Sets access and modification time of file.

Parameters

string|array|Traversable $files A filename, an array of files, or a \Traversable instance to create
int $time The touch time as a Unix timestamp
int $access_time The access time as a Unix timestamp

Exceptions

filesystem_exception When touch fails