Path

ez components / documentation / api reference / latest / base


eZ Components latest

Base: ezcBaseFile

[ Tutorial ] [ Class tree ] [ Element index ] [ ChangeLog ] [ Credits ]

Class: ezcBaseFile

Provides a selection of static independent methods to provide functionality for file and file system handling. [source]
This example shows how to use the findRecursive method:
 1.  <?php
 2.  // lists all the files under /etc (including subdirectories) that end in
 3.  // .conf
 4.  $confFiles ezcBaseFile::findRecursive"/etc"array'@\.conf$@' ) );
 5.  
 6.  // lists all autoload files in the components source tree and excludes the
 7.  // ones in the autoload subdirectory. Statistics are returned in the $stats
 8.  // variable which is passed by reference.
 9.  $files ezcBaseFile::findRecursive(
10.      "/dat/dev/ezcomponents",
11.      array'@src/.*_autoload.php$@' ),
12.      array'@/autoload/@' ),
13.      $stats
14.  );
15.  
16.  // lists all binaries in /bin except the ones starting with a "g"
17.  $data ezcBaseFile::findRecursive"/bin"array()array'@^/bin/g@' ) );
18.  ?>

Descendents

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

string calculateRelativePath( string $path, string $base )
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

void copyRecursive( string $source, string $destination, [int $depth = -1], [int $dirMode = 0775], [int $fileMode = 0664] )
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  

Throws

ClassDescription
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

array findRecursive( string $sourceDir, [ $includeFilters = array()], [ $excludeFilters = array()], [ &$statistics = null], array() $statistics )
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  

Throws

ClassDescription
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

void findRecursiveCallback( ezcBaseFileFindContext $context, string $sourceDir, string $fileName, array(stat) $fileInfo )
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

bool isAbsolutePath( string $path, [string $os = null] )
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

void removeRecursive( string $directory )
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

array walkRecursive( string $sourceDir, [ $includeFilters = array()], [ $excludeFilters = array()], callback $callback, &$callbackContext, mixed $callbackContext )
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  

Throws

ClassDescription
ezcBaseFileNotFoundException if the $sourceDir directory is not a directory or does not exist.
ezcBaseFilePermissionException if the $sourceDir directory could not be opened for reading.

Last updated: Mon, 21 Dec 2009