CDirectoryCacheDependency
CDirectoryCacheDependency represents a dependency based on change of a directory.
CDirectoryCacheDependency performs dependency checking based on the
modification time of the files contained in the specified directory.
The directory being checked is specified via
directory.
By default, all files under the specified directory and subdirectories
will be checked. If the last modification time of any of them is changed
or if different number of files are contained in a directory, the dependency
is reported as changed. By specifying
recursiveLevel,
one can limit the checking to a certain depth of the directory.
Note, dependency checking for a directory is expensive because it involves
accessing modification time of multiple files under the directory.
Public Properties
Hide inherited properties
| Property | Type | Description | Defined By |
| dependentData |
mixed |
the data used to determine if dependency has been changed. |
CCacheDependency |
| directory |
string |
the directory whose change is used to determine if the dependency has been changed. |
CDirectoryCacheDependency |
| hasChanged |
boolean |
whether the dependency has changed. |
CCacheDependency |
| namePattern |
string |
the regular expression matching valid file/directory names. |
CDirectoryCacheDependency |
| recursiveLevel |
integer |
the depth of the subdirectories to be recursively checked. |
CDirectoryCacheDependency |
Protected Methods
Hide inherited methods
| Method | Description | Defined By |
| generateDependentData() |
Generates the data needed to determine if dependency has been changed. |
CDirectoryCacheDependency |
| generateTimestamps() |
Determines the last modification time for files under the directory. |
CDirectoryCacheDependency |
| validateDirectory() |
Checks to see if the specified subdirectory should be checked for dependency. |
CDirectoryCacheDependency |
| validateFile() |
Checks to see if the file should be checked for dependency. |
CDirectoryCacheDependency |
Property Details
public string $directory;
the directory whose change is used to determine if the dependency has been changed.
If any of the files under the directory is changed, the dependency is considered as changed.
public string $namePattern;
the regular expression matching valid file/directory names.
Only the matching files or directories will be checked for changes.
Defaults to null, meaning all files/directories will qualify.
public integer $recursiveLevel;
the depth of the subdirectories to be recursively checked.
If the value is less than 0, it means unlimited depth.
If the value is 0, it means checking the files directly under the specified directory.
Method Details
|
public void __construct(string $directory=NULL)
|
| $directory |
string |
the directory to be checked |
Constructor.
|
protected mixed generateDependentData()
|
| {return} |
mixed |
the data needed to determine if dependency has been changed. |
Generates the data needed to determine if dependency has been changed.
This method returns the modification timestamps for files under the directory.
|
protected array generateTimestamps(string $directory, int $level=0)
|
| $directory |
string |
the directory name |
| $level |
int |
level of the recursion |
| {return} |
array |
list of file modification time indexed by the file path |
Determines the last modification time for files under the directory.
This method may go recursively into subdirectories if recursiveLevel is not 0.
|
protected boolean validateDirectory(string $directory)
|
| $directory |
string |
the name of the subdirectory that may be checked for dependency. |
| {return} |
boolean |
whether this subdirectory should be checked. |
Checks to see if the specified subdirectory should be checked for dependency.
This method is invoked when dependency of the whole directory is being checked.
By default, it always returns true, meaning the subdirectory should be checked.
You may override this method to check only certain subdirectories.
|
protected boolean validateFile(string $fileName)
|
| $fileName |
string |
the name of the file that may be checked for dependency. |
| {return} |
boolean |
whether this file should be checked. |
Checks to see if the file should be checked for dependency.
This method is invoked when dependency of the whole directory is being checked.
By default, it always returns true, meaning the file should be checked.
You may override this method to check only certain files.