phpBB API Documentation
Class

phpbb\filesystem\filesystem

class filesystem implements filesystem_interface

A class with various functions that are related to paths, files and the filesystem

Methods

__construct()

Constructor

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

Change owner group of files/directories

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

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

Change owner group of files/directories

string clean_path(string $path)

Eliminates useless .

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

Copies a file.

dump_file(string $filename, string $content)

Atomically dumps content into a file.

bool exists(string|array|Traversable $files)

Checks the existence of files or directories.

is_absolute_path(string $path)

Checks if a path is absolute or not

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

Checks if files/directories are readable

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

Test if a file/directory is writable

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

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

Mirrors a directory to another.

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

Creates a directory recursively.

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

Global function for chmodding directories and files for internal use

string realpath(string $path)

A wrapper for PHP's realpath

remove(string|array|Traversable $files)

Removes files or directories.

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

Renames a file or a directory.

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

Creates a symbolic link or copy a directory.

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

Sets access and modification time of file.

Details

at line 47
public __construct()

Constructor

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()

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()

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()

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

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

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

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

at line 228
public is_absolute_path(string $path)

Checks if a path is absolute or not

Parameters

string $path Path to check

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.

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.

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

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()

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()

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()

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

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()

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

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