filesystem
class filesystem implements filesystem_interface
A class with various functions that are related to paths, files and the filesystem
Properties
protected array | $chmod_info | Store some information about file ownership for phpBB's chmod function |
|
protected string|bool | $working_directory | Stores current working directory |
|
protected Filesystem | $symfony_filesystem | Symfony's Filesystem component |
Methods
Constructor
Change owner group of files/directories
Global function for chmodding directories and files for internal use
Change owner group of files/directories
Eliminates useless . and .. components from specified path.
Copies a file.
Atomically dumps content into a file.
Checks if a path is absolute or not
Checks if files/directories are readable
Test if a file/directory is writable
Given an existing path, convert it to a path relative to a given starting path
Mirrors a directory to another.
Global function for chmodding directories and files for internal use
A wrapper for PHP's realpath
Renames a file or a directory.
Creates a symbolic link or copy a directory.
Sets access and modification time of file.
phpBB's implementation of is_writable
Try to resolve real path when PHP's realpath fails to do so
Try to resolve symlinks in path
Details
at line 47
__construct()
Constructor
at line 57
chgrp(string|array|Traversable $files, string $group, bool $recursive = false)
Change owner group of files/directories
at line 77
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.
at line 143
chown(string|array|Traversable $files, string $user, bool $recursive = false)
Change owner group of files/directories
at line 163
string
clean_path(string $path)
Eliminates useless . and .. components from specified path.
at line 190
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.
at line 205
dump_file(string $filename, string $content)
Atomically dumps content into a file.
at line 220
bool
exists(string|array|Traversable $files)
Checks the existence of files or directories.
at line 228
bool
is_absolute_path(string $path)
Checks if a path is absolute or not
at line 236
bool
is_readable(string|array|Traversable $files, bool $recursive = false)
Checks if files/directories are readable
at line 260
bool
is_writable(string|array|Traversable $files, bool $recursive = false)
Test if a file/directory is writable
at line 306
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
at line 314
mirror(string $origin_dir, string $target_dir, Traversable $iterator = null, array $options = array())
Mirrors a directory to another.
at line 332
mkdir(string|array|Traversable $dirs, int $mode = 0777)
Creates a directory recursively.
at line 350
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 appropriate execute bit on directories.
Supported constants representing bit fields are:
filesystem_interface::CHMOD_ALL - all permissions (7) filesystem_interface::CHMOD_READ - read permission (4) filesystem_interface::CHMOD_WRITE - write permission (2) filesystem_interface::CHMOD_EXECUTE - 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 is_readable() and is_writable() functions.
at line 487
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.
at line 515
remove(string|array|Traversable $files)
Removes files or directories.
at line 535
rename(string $origin, string $target, bool $overwrite = false)
Renames a file or a directory.
at line 553
symlink(string $origin_dir, string $target_dir, bool $copy_on_windows = false)
Creates a symbolic link or copy a directory.
at line 568
touch(string|array|Traversable $files, int $time = null, int $access_time = null)
Sets access and modification time of file.
at line 594
protected bool
phpbb_is_writable(string $file)
phpBB's implementation of is_writable
at line 642
protected bool|string
phpbb_own_realpath(string $path)
Try to resolve real path when PHP's realpath fails to do so
at line 751
protected Traversable
to_iterator(string|array|Traversable $files)
Convert file(s) to \Traversable object
This is the same function as Symfony's toIterator, but that is private so we cannot use it.
at line 772
protected string|array|bool
resolve_path(string $path, string $prefix = '', bool $absolute = false, bool $return_array = false)
Try to resolve symlinks in path