Apache Zeta Components Manual :: Docs For Class ezcBaseFile
Base::ezcBaseFile
Class ezcBaseFile
Provides a selection of static independent methods to provide functionality for file and file system handling.
This example shows how to use the findRecursive method:
- <?php
- // lists all the files under /etc (including subdirectories) that end in
- // .conf
- // lists all autoload files in the components source tree and excludes the
- // ones in the autoload subdirectory. Statistics are returned in the $stats
- // variable which is passed by reference.
- "/dat/dev/ezcomponents",
- array( '@src/.*_autoload.php$@' ),
- array( '@/autoload/@' ),
- $stats
- );
- // lists all binaries in /bin except the ones starting with a "g"
- ?>
Source for this file: /Base/src/file.php
Version: | //autogentag// |
Descendants
Child Class | Description |
---|---|
ezcFile | Provides a selection of static independent methods to provide functionality for file and file system handling. This class is deprecated, please use ezcBaseFile instead. |
Method Summary
public static string |
calculateRelativePath(
$path
, $base
)
Calculates the relative path of the file/directory '$path' to a given $base path. |
public static void |
copyRecursive(
$source
, $destination
, [ $depth
= -1] , [ $dirMode
= 0775] , [ $fileMode
= 0664] )
Recursively copy a file or directory. |
public static array |
findRecursive(
$sourceDir
, [ $includeFilters
= array()] , [ $excludeFilters
= array()] , [ &$statistics
= null] , $statistics
)
Finds files recursively on a file system |
protected static void |
findRecursiveCallback(
$context
, $sourceDir
, $fileName
, $fileInfo
)
This is the callback used by findRecursive to collect data. |
public static bool |
isAbsolutePath(
$path
, [ $os
= null] )
Returns whether the passed $path is an absolute path, giving the current $os. |
public static void |
removeRecursive(
$directory
)
Removes files and directories recursively from a file system |
public static array |
walkRecursive(
$sourceDir
, [ $includeFilters
= array()] , [ $excludeFilters
= array()] , $callback
, &$callbackContext
, $callbackContext
)
Walks files and directories recursively on a file system |
Methods
calculateRelativePath
Calculates the relative path of the file/directory '$path' to a given $base path.
$path and $base should be fully absolute paths. This function returns the answer of "How do I go from $base to $path". If the $path and $base are the same path, the function returns '.'. This method does not touch the filesystem.
Parameters:
Name | Type | Description |
---|---|---|
$path |
string | |
$base |
string |
copyRecursive
Recursively copy a file or directory.
Recursively copy a file or directory in $source to the given destination. If a depth is given, the operation will stop, if the given recursion depth is reached. A depth of -1 means no limit, while a depth of 0 means, that only the current file or directory will be copied, without any recursion.
You may optionally define modes used to create files and directories.
Parameters:
Name | Type | Description |
---|---|---|
$source |
string | |
$destination |
string | |
$depth |
int | |
$dirMode |
int | |
$fileMode |
int |
Exceptions:
Type | Description |
---|---|
ezcBaseFileNotFoundException |
If the $sourceDir directory is not a directory or does not exist. |
ezcBaseFilePermissionException |
If the $sourceDir directory could not be opened for reading, or the destination is not writeable. |
findRecursive
Finds files recursively on a file system
With this method you can scan the file system for files. You can use $includeFilters to include only specific files, and $excludeFilters to exclude certain files from being returned. The function will always go into subdirectories even if the entry would not have passed the filters. It uses the {@see walkRecursive()} method to do the actually recursion.
Filters are regular expressions and are therefore required to have starting and ending delimiters. The Perl Compatible syntax is used as regular expression language.
If you pass an empty array to the $statistics argument, the function will in details about the number of files found into the 'count' array element, and the total filesize in the 'size' array element. Because this argument is passed by reference, you *have* to pass a variable and you can not pass a constant value such as "array()".
Parameters:
Name | Type | Description |
---|---|---|
$sourceDir |
string | |
$includeFilters |
array(string) | |
$excludeFilters |
array(string) | |
$statistics |
array() | |
&$statistics |
Exceptions:
Type | Description |
---|---|
ezcBaseFileNotFoundException |
if the $sourceDir directory is not a directory or does not exist. |
ezcBaseFilePermissionException |
if the $sourceDir directory could not be opened for reading. |
findRecursiveCallback
This is the callback used by findRecursive to collect data.
This callback method works together with walkRecursive() and is called for every file/and or directory. The $context is a callback specific container in which data can be stored and shared between the different calls to the callback function. The walkRecursive() function also passes in the full absolute directory in $sourceDir, the filename in $fileName and file information (such as size, modes, types) as an array as returned by PHP's stat() in the $fileInfo parameter.
Parameters:
Name | Type | Description |
---|---|---|
$context |
ezcBaseFileFindContext | |
$sourceDir |
string | |
$fileName |
string | |
$fileInfo |
array(stat) |
isAbsolutePath
Returns whether the passed $path is an absolute path, giving the current $os.
With the $os parameter you can tell this function to use the semantics for a different operating system to determine whether a path is absolute. The $os argument defaults to the OS that the script is running on.
Parameters:
Name | Type | Description |
---|---|---|
$path |
string | |
$os |
string |
removeRecursive
Removes files and directories recursively from a file system
This method recursively removes the $directory and all its contents. You should be extremely careful with this method as it has the potential to erase everything that the current user has access to.
Parameters:
Name | Type | Description |
---|---|---|
$directory |
string |
walkRecursive
Walks files and directories recursively on a file system
This method walks over a directory and calls a callback from every file and directory it finds. You can use $includeFilters to include only specific files, and $excludeFilters to exclude certain files from being returned. The function will always go into subdirectories even if the entry would not have passed the filters.
The callback is passed in the $callback parameter, and the $callbackContext will be send to the callback function/method as parameter so that you can store data in there that persists with all the calls and recursive calls to this method. It's up to the callback method to do something useful with this. The callback function's parameters are in order:
- ezcBaseFileFindContext $context
- string $sourceDir
- string $fileName
- array(stat) $fileInfo
See {@see findRecursiveCallback()} for an example of a callback function.
Filters are regular expressions and are therefore required to have starting and ending delimiters. The Perl Compatible syntax is used as regular expression language.
Parameters:
Name | Type | Description |
---|---|---|
$sourceDir |
string | |
$includeFilters |
array(string) | |
$excludeFilters |
array(string) | |
$callback |
callback | |
$callbackContext |
mixed | |
&$callbackContext |
Exceptions:
Type | Description |
---|---|
ezcBaseFileNotFoundException |
if the $sourceDir directory is not a directory or does not exist. |
ezcBaseFilePermissionException |
if the $sourceDir directory could not be opened for reading. |