system/io/UnixFileSystem.php
UnixFileSystem class. This class encapsulates the basic file system functions for platforms using the unix (posix)-stylish filesystem. It wraps php native functions suppressing normal PHP error reporting and instead uses Exception to report and error.
This class is part of a oop based filesystem abstraction and targeted to run on all supported php platforms.
Note: For debugging turn track_errors on in the php.ini. The error messages and log messages from this class will then be clearer because $php_errormsg is passed as part of the message.
FIXME: - Comments - Error handling reduced to min, error are handled by PhingFile mainly
- Author
- Andreas Aderhold, andi@binarycloud.com
- Package
- phing.system.io
- Version
- $Id$
\UnixFileSystem
UnixFileSystem class. This class encapsulates the basic file system functions for platforms using the unix (posix)-stylish filesystem. It wraps php native functions suppressing normal PHP error reporting and instead uses Exception to report and error.
This class is part of a oop based filesystem abstraction and targeted to run on all supported php platforms.
Note: For debugging turn track_errors on in the php.ini. The error messages and log messages from this class will then be clearer because $php_errormsg is passed as part of the message.
FIXME: - Comments - Error handling reduced to min, error are handled by PhingFile mainly
- Parent(s)
- \FileSystem
- Author
- Andreas Aderhold, andi@binarycloud.com
- Version
- $Id$
Constants
int
BA_EXISTS
= 0x01- Inherited_from
- \FileSystem::BA_EXISTS
- int
int
BA_REGULAR
= 0x02- Inherited_from
- \FileSystem::BA_REGULAR
- int
int
BA_DIRECTORY
= 0x04- Inherited_from
- \FileSystem::BA_DIRECTORY
- int
int
BA_HIDDEN
= 0x08- Inherited_from
- \FileSystem::BA_HIDDEN
- int
Properties
Methods

canDelete(
\PhingFile $f
)
:
booleanWhether file can be deleted.
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |
| Type | Description |
|---|---|
| boolean |

canonicalize(
string $strPath
)
:
mixed
| Name | Type | Description |
|---|---|---|
| $strPath | string |
| Type | Description |
|---|---|
| mixed | Canonical path or false if the file doesn't exist. |

checkAccess(
\PhingFile $f, boolean $write
=
false
)
:
voidCheck whether the file or directory denoted by the given abstract pathname may be accessed by this process. If the second argument is false, then a check for read access is made; if the second argument is true, then a check for write (not read-write) access is made. Return false if access is denied or an I/O error occurs.
Inherited from: \FileSystem::checkAccess()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile | |
| $write | boolean |

chgrp(
string $pathname, string $group
)
:
void
| Name | Type | Description |
|---|---|---|
| $pathname | string | Path and name of file or directory. |
| $group | string | The group of the file or directory. See http://us.php.net/chgrp |
| Exception | Description |
|---|---|
| \IOException | if operation failed. |

chmod(
string $pathname, int $mode
)
:
void
| Name | Type | Description |
|---|---|---|
| $pathname | string | Path and name of file or directory. |
| $mode | int | The mode (permissions) of the file or directory. If using octal add leading 0. eg. 0777. Mode is affected by the umask system setting. |
| Exception | Description |
|---|---|
| \IOException | if operation failed. |

chown(
string $pathname, string $user
)
:
void
| Name | Type | Description |
|---|---|---|
| $pathname | string | Path and name of file or directory. |
| $user | string | The user name or number of the file or directory. See http://us.php.net/chown |
| Exception | Description |
|---|---|
| \Exception | if operation failed. |

compare(
\PhingFile $f1, \PhingFile $f2
)
:
voidcompares file paths lexicographically
| Name | Type | Description |
|---|---|---|
| $f1 | \PhingFile | |
| $f2 | \PhingFile |

compareMTimes(
\file1 $file1, \file2 $file2
)
:
\Int.
| Name | Type | Description |
|---|---|---|
| $file1 | \file1 | String. Path and name of file1. |
| $file2 | \file2 | String. Path and name of file2. |
| Type | Description |
|---|---|
| \Int. | 1 if file1 is newer. -1 if file2 is newer. 0 if files have the same time. Err object on failure. |
| Exception | Description |
|---|---|
| \Exception | - if cannot get modified time of either file. |

copy(
\PhingFile $src, \PhingFile $dest
)
:
voidCopy a file, takes care of symbolic links
| Name | Type | Description |
|---|---|---|
| $src | \PhingFile | Source path and name file to copy. |
| $dest | \PhingFile | Destination path and name of new file. |
| Exception | Description |
|---|---|
| \Exception | if file cannot be copied. |

copyr(
string $source, string $dest
)
:
boolCopy a file, or recursively copy a folder and its contents
Inherited from: \FileSystem::copyr()| Name | Type | Description |
|---|---|---|
| $source | string | Source path |
| $dest | string | Destination path |
| Type | Description |
|---|---|
| bool | Returns TRUE on success, FALSE on failure |
- Author
- Aidan Lister
- Link
- http://aidanlister.com/repos/v/function.copyr.php
- Version
- 1.0.1

createDirectory(
\PhingFile $f, int $mode
=
0755
)
:
booleanCreate a new directory denoted by the given abstract pathname, returning true if and only if the operation succeeds.
Inherited from: \FileSystem::createDirectory()NOTE: umask() is reset to 0 while executing mkdir(), and restored afterwards
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile | |
| $mode | int |
| Type | Description |
|---|---|
| boolean |

createNewFile(
string $strPathname
)
:
booleanCreate a new empty file with the given pathname. Return true if the file was created and false if a file or directory with the given pathname already exists. Throw an IOException if an I/O error occurs.
Inherited from: \FileSystem::createNewFile()| Name | Type | Description |
|---|---|---|
| $strPathname | string | Path of the file to be created. |
| Type | Description |
|---|---|
| boolean |
| Exception | Description |
|---|---|
| \IOException |

delete(
\PhingFile $f, boolean $recursive
=
false
)
:
voidDelete the file or directory denoted by the given abstract pathname, returning true if and only if the operation succeeds.
Inherited from: \FileSystem::delete()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile | |
| $recursive | boolean |

deleteOnExit(
\PhingFile $f
)
:
voidArrange for the file or directory denoted by the given abstract pathname to be deleted when Phing::shutdown is called, returning true if and only if the operation succeeds.
Inherited from: \FileSystem::deleteOnExit()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |
| Exception | Description |
|---|---|
| \IOException |

fromURIPath(
$p
)
:
voidPost-process the given URI path string if necessary. This is used on win32, e.g., to transform "/c:/foo" into "c:/foo". The path string still has slash separators; code in the PhingFile class will translate them after this method returns.
| Name | Type | Description |
|---|---|---|
| $p |

getBooleanAttributes(
\PhingFile $f
)
:
voidReturn the simple boolean attributes for the file or directory denoted by the given abstract pathname, or zero if it does not exist or some other I/O error occurs.
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |

getDefaultParent(
)
:
voidReturn the parent pathname string to be used when the parent-directory argument in one of the two-argument PhingFile constructors is the empty pathname.

getFileSystem(
)
:
\FileSystemStatic method to return the FileSystem singelton representing this platform's local filesystem driver.
Inherited from: \FileSystem::getFileSystem()| Type | Description |
|---|---|
| \FileSystem |
| Exception | Description |
|---|---|
| \IOException |

getLastModifiedTime(
\PhingFile $f
)
:
intReturn the time at which the file or directory denoted by the given abstract pathname was last modified, or zero if it does not exist or some other I/O error occurs.
Inherited from: \FileSystem::getLastModifiedTime()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |
| Type | Description |
|---|---|
| int |
| Exception | Description |
|---|---|
| \IOException |

getLength(
\PhingFile $f
)
:
intReturn the length in bytes of the file denoted by the given abstract pathname, or zero if it does not exist, is a directory, or some other I/O error occurs.
Inherited from: \FileSystem::getLength()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |
| Type | Description |
|---|---|
| int |
| Exception | Description |
|---|---|
| \IOException |

isAbsolute(
\PhingFile $f
)
:
voidTell whether or not the given abstract pathname is absolute.
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |

listDir(
\PhingFile $f
)
:
voidList the elements of the directory denoted by the given abstract
pathname. Return an array of strings naming the elements of the
directory if successful; otherwise, return null.
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |

listRoots(
)
:
voidList the available filesystem roots, return array of PhingFile objects
| Exception | Description |
|---|---|
| \IOException |

lister(
$f
)
:
voidreturns the contents of a directory in an array
| Name | Type | Description |
|---|---|---|
| $f |

lock(
\PhingFile $f
)
:
voidLocks a file and throws an Exception if this is not possible.
Inherited from: \FileSystem::lock()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |
| Exception | Description |
|---|---|
| \Exception |

normalize(
$strPathname
)
:
voidA normal Unix pathname contains no duplicate slashes and does not end with a slash. It may be the empty string.
Check that the given pathname is normal. If not, invoke the real normalizer on the part of the pathname that requires normalization. This way we iterate through the whole pathname string only once.
| Name | Type | Description |
|---|---|---|
| $strPathname |

normalizer(
$pathname, $len, $offset
)
:
voidNormalize the given pathname, whose length is $len, starting at the given $offset; everything before this offset is already normal.
| Name | Type | Description |
|---|---|---|
| $pathname | ||
| $len | ||
| $offset |

prefixLength(
string $pathname
)
:
voidCompute the length of the pathname string's prefix. The pathname string must be in normal form.
| Name | Type | Description |
|---|---|---|
| $pathname | string |

rename(
\PhingFile $f1, \PhingFile $f2
)
:
voidRename the file or directory denoted by the first abstract pathname to the second abstract pathname, returning true if and only if the operation succeeds.
Inherited from: \FileSystem::rename()| Name | Type | Description |
|---|---|---|
| $f1 | \PhingFile | abstract source file |
| $f2 | \PhingFile | abstract destination file |
| Exception | Description |
|---|---|
| \IOException | if rename cannot be performed |

resolve(
string $parent, string $child
)
:
voidResolve the child pathname string against the parent.
Both strings must be in normal form, and the result will be in normal form.
| Name | Type | Description |
|---|---|---|
| $parent | string | |
| $child | string |

rmdir(
\dir $dir, \children $children
=
false
)
:
voidDelete an empty directory OR a directory and all of its contents.
Inherited from: \FileSystem::rmdir()| Name | Type | Description |
|---|---|---|
| $dir | \dir | String. Path and/or name of directory to delete. |
| $children | \children | Boolean. False: don't delete directory contents. True: delete directory contents. |

setLastModifiedTime(
\PhingFile $f, int $time
)
:
voidSet the last-modified time of the file or directory denoted by the given abstract pathname returning true if and only if the operation succeeds.
Inherited from: \FileSystem::setLastModifiedTime()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile | |
| $time | int |
| Exception | Description |
|---|---|
| \IOException |

setReadOnly(
\PhingFile $f
)
:
voidset file readonly on unix
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |
| Exception | Description |
|---|---|
| \IOException |

symlink(
string $target, string $link
)
:
void
Currently symlink is not implemented on Windows. Don't use if the application is to be portable.
| Name | Type | Description |
|---|---|---|
| $target | string | Path and/or name of file to link. |
| $link | string | Path and/or name of link to be created. |

touch(
string $file, int $time
=
null
)
:
voidSet the modification and access time on a file to the present time.
Inherited from: \FileSystem::touch()| Name | Type | Description |
|---|---|---|
| $file | string | Path and/or name of file to touch. |
| $time | int |

umask(
\mode $mode
)
:
void
| Name | Type | Description |
|---|---|---|
| $mode | \mode | Int. Permissions ususally in ocatal. Use leading 0 for octal. Number between 0 and 0777. |
| Exception | Description |
|---|---|
| \Exception | if there is an error performing operation. |

unlink(
string $file
)
:
void
| Name | Type | Description |
|---|---|---|
| $file | string | Path and/or name of file to delete. |
| Exception | Description |
|---|---|
| \IOException | - if an error is encountered. |

unlock(
\PhingFile $f
)
:
voidUnlocks a file and throws an IO Error if this is not possible.
Inherited from: \FileSystem::unlock()| Name | Type | Description |
|---|---|---|
| $f | \PhingFile |
| Exception | Description |
|---|---|
| \IOException |