PHP Class Neos\Flow\Monitor\FileMonitor

Afficher le fichier Open project: neos/flow-development-collection Class Usage Examples

Protected Properties

Свойство Type Description
$cache Neos\Cache\Frontend\StringFrontend
$changeDetectionStrategy Neos\Flow\Monitor\ChangeDetectionStrategy\ChangeDetectionStrategyInterface
$changedFiles array Changed files for this monitor
$changedPaths array The changed paths for this monitor
$directoriesAndFiles array Array of directories and files that were cached on the last run.
$identifier string
$monitoredDirectories array
$monitoredFiles array
$signalDispatcher Neos\Flow\SignalSlot\Dispatcher
$systemLogger Neos\Flow\Log\SystemLoggerInterface

Méthodes publiques

Méthode Description
__construct ( string $identifier ) Constructs this file monitor
createFileMonitorAtBoot ( string $identifier, Bootstrap $bootstrap ) : FileMonitor Helper method to create a FileMonitor instance during boot sequence as injections have to be done manually.
detectChanges ( ) : void Detects changes of the files and directories to be monitored and emits signals accordingly.
getIdentifier ( ) : string Returns the identifier of this monitor
getMonitoredDirectories ( ) : array Returns a list of all monitored directories
getMonitoredFiles ( ) : array Returns a list of all monitored files
injectCache ( StringFrontend $cache ) : void Injects the Flow_Monitor cache
injectChangeDetectionStrategy ( Neos\Flow\Monitor\ChangeDetectionStrategy\ChangeDetectionStrategyInterface $changeDetectionStrategy ) : void Injects the Change Detection Strategy
injectSignalDispatcher ( Dispatcher $signalDispatcher ) : void Injects the Singal Slot Dispatcher because classes of the Monitor subpackage cannot be proxied by the AOP framework because it is not initialized at the time the monitoring is used.
injectSystemLogger ( Neos\Flow\Log\SystemLoggerInterface $systemLogger ) : void Injects the system logger
monitorDirectory ( string $path, string $filenamePattern = null ) : void Adds the specified directory to the list of directories to be monitored.
monitorFile ( string $pathAndFilename ) : void Adds the specified file to the list of files to be monitored.
shutdownObject ( ) : void Caches the directories and their files

Méthodes protégées

Méthode Description
detectChangedFiles ( array $pathAndFilenames ) : array Detects changes in the given list of files and emits signals if necessary.
detectChangesOnPath ( string $path, string $filenamePattern ) : boolean Detect changes for one of the monitored paths.
emitDirectoriesHaveChanged ( string $monitorIdentifier, array $changedDirectories ) : void Signalizes that the specified directory has changed
emitFilesHaveChanged ( string $monitorIdentifier, array $changedFiles ) : void Signalizes that the specified file has changed
loadDetectedDirectoriesAndFiles ( ) : void Loads the last detected files for this monitor.
readMonitoredDirectoryRecursively ( string $path, string $filenamePattern ) : Generator Read a monitored directory recursively, taking into account filename patterns
saveDetectedDirectoriesAndFiles ( ) : void Store the changed directories and files back to the cache.
setDetectedFilesForPath ( string $path, array $files ) : void

Method Details

__construct() public méthode

Constructs this file monitor
public __construct ( string $identifier )
$identifier string Name of this specific file monitor - will be used in the signals emitted by this monitor.

createFileMonitorAtBoot() public static méthode

Helper method to create a FileMonitor instance during boot sequence as injections have to be done manually.
public static createFileMonitorAtBoot ( string $identifier, Bootstrap $bootstrap ) : FileMonitor
$identifier string
$bootstrap Neos\Flow\Core\Bootstrap
Résultat FileMonitor

detectChangedFiles() protected méthode

Detects changes in the given list of files and emits signals if necessary.
protected detectChangedFiles ( array $pathAndFilenames ) : array
$pathAndFilenames array A list of full path and filenames of files to check
Résultat array An array of changed files (key = path and filenmae) and their status (value)

detectChanges() public méthode

Detects changes of the files and directories to be monitored and emits signals accordingly.
public detectChanges ( ) : void
Résultat void

detectChangesOnPath() protected méthode

Detect changes for one of the monitored paths.
protected detectChangesOnPath ( string $path, string $filenamePattern ) : boolean
$path string
$filenamePattern string
Résultat boolean TRUE if any changes were detected in this path

emitDirectoriesHaveChanged() protected méthode

Signalizes that the specified directory has changed
protected emitDirectoriesHaveChanged ( string $monitorIdentifier, array $changedDirectories ) : void
$monitorIdentifier string Name of the monitor which detected the change
$changedDirectories array An array of changed directories (key = path) and their status (value)
Résultat void

emitFilesHaveChanged() protected méthode

Signalizes that the specified file has changed
protected emitFilesHaveChanged ( string $monitorIdentifier, array $changedFiles ) : void
$monitorIdentifier string Name of the monitor which detected the change
$changedFiles array An array of changed files (key = path and filename) and their status (value)
Résultat void

getIdentifier() public méthode

Returns the identifier of this monitor
public getIdentifier ( ) : string
Résultat string

getMonitoredDirectories() public méthode

Returns a list of all monitored directories
public getMonitoredDirectories ( ) : array
Résultat array A list of paths of monitored directories

getMonitoredFiles() public méthode

Returns a list of all monitored files
public getMonitoredFiles ( ) : array
Résultat array A list of paths and filenames of monitored files

injectCache() public méthode

Injects the Flow_Monitor cache
public injectCache ( StringFrontend $cache ) : void
$cache Neos\Cache\Frontend\StringFrontend
Résultat void

injectChangeDetectionStrategy() public méthode

Injects the Change Detection Strategy
public injectChangeDetectionStrategy ( Neos\Flow\Monitor\ChangeDetectionStrategy\ChangeDetectionStrategyInterface $changeDetectionStrategy ) : void
$changeDetectionStrategy Neos\Flow\Monitor\ChangeDetectionStrategy\ChangeDetectionStrategyInterface The strategy to use for detecting changes
Résultat void

injectSignalDispatcher() public méthode

Injects the Singal Slot Dispatcher because classes of the Monitor subpackage cannot be proxied by the AOP framework because it is not initialized at the time the monitoring is used.
public injectSignalDispatcher ( Dispatcher $signalDispatcher ) : void
$signalDispatcher Neos\Flow\SignalSlot\Dispatcher The Signal Slot Dispatcher
Résultat void

injectSystemLogger() public méthode

Injects the system logger
public injectSystemLogger ( Neos\Flow\Log\SystemLoggerInterface $systemLogger ) : void
$systemLogger Neos\Flow\Log\SystemLoggerInterface
Résultat void

loadDetectedDirectoriesAndFiles() protected méthode

Loads the last detected files for this monitor.
protected loadDetectedDirectoriesAndFiles ( ) : void
Résultat void

monitorDirectory() public méthode

All files in these directories will be monitored too.
public monitorDirectory ( string $path, string $filenamePattern = null ) : void
$path string Absolute path of the directory to monitor
$filenamePattern string A pattern for filenames to consider for file monitoring (regular expression)
Résultat void

monitorFile() public méthode

The file in question does not necessarily have to exist.
public monitorFile ( string $pathAndFilename ) : void
$pathAndFilename string Absolute path and filename of the file to monitor
Résultat void

readMonitoredDirectoryRecursively() protected méthode

Read a monitored directory recursively, taking into account filename patterns
protected readMonitoredDirectoryRecursively ( string $path, string $filenamePattern ) : Generator
$path string The path of a monitored directory
$filenamePattern string
Résultat Generator

saveDetectedDirectoriesAndFiles() protected méthode

Store the changed directories and files back to the cache.
protected saveDetectedDirectoriesAndFiles ( ) : void
Résultat void

setDetectedFilesForPath() protected méthode

protected setDetectedFilesForPath ( string $path, array $files ) : void
$path string
$files array
Résultat void

shutdownObject() public méthode

Caches the directories and their files
public shutdownObject ( ) : void
Résultat void

Property Details

$cache protected_oe property

protected StringFrontend,Neos\Cache\Frontend $cache
Résultat Neos\Cache\Frontend\StringFrontend

$changeDetectionStrategy protected_oe property

protected ChangeDetectionStrategyInterface,Neos\Flow\Monitor\ChangeDetectionStrategy $changeDetectionStrategy
Résultat Neos\Flow\Monitor\ChangeDetectionStrategy\ChangeDetectionStrategyInterface

$changedFiles protected_oe property

Changed files for this monitor
protected array $changedFiles
Résultat array

$changedPaths protected_oe property

The changed paths for this monitor
protected array $changedPaths
Résultat array

$directoriesAndFiles protected_oe property

Array of directories and files that were cached on the last run.
protected array $directoriesAndFiles
Résultat array

$identifier protected_oe property

protected string $identifier
Résultat string

$monitoredDirectories protected_oe property

protected array $monitoredDirectories
Résultat array

$monitoredFiles protected_oe property

protected array $monitoredFiles
Résultat array

$signalDispatcher protected_oe property

protected Dispatcher,Neos\Flow\SignalSlot $signalDispatcher
Résultat Neos\Flow\SignalSlot\Dispatcher

$systemLogger protected_oe property

protected SystemLoggerInterface,Neos\Flow\Log $systemLogger
Résultat Neos\Flow\Log\SystemLoggerInterface