Neos\Flow\Core\Booting\Scripts::initializeSystemFileMonitor PHP Метод

initializeSystemFileMonitor() публичный статический Метод

This function only triggers the detection of changes in the file monitors. The actual cache flushing is handled by other functions which are triggered by the file monitor through a signal. For Flow, those signal-slot connections are defined in the class \Neos\Flow\Package.
public static initializeSystemFileMonitor ( Bootstrap $bootstrap ) : void
$bootstrap Neos\Flow\Core\Bootstrap
Результат void
    public static function initializeSystemFileMonitor(Bootstrap $bootstrap)
    {
        /** @var FileMonitor[] $fileMonitors */
        $fileMonitors = ['Flow_ClassFiles' => FileMonitor::createFileMonitorAtBoot('Flow_ClassFiles', $bootstrap), 'Flow_ConfigurationFiles' => FileMonitor::createFileMonitorAtBoot('Flow_ConfigurationFiles', $bootstrap), 'Flow_TranslationFiles' => FileMonitor::createFileMonitorAtBoot('Flow_TranslationFiles', $bootstrap)];
        $context = $bootstrap->getContext();
        /** @var PackageManagerInterface $packageManager */
        $packageManager = $bootstrap->getEarlyInstance(PackageManagerInterface::class);
        $packagesWithConfiguredObjects = static::getListOfPackagesWithConfiguredObjects($bootstrap);
        /** @var PackageInterface $package */
        foreach ($packageManager->getActivePackages() as $packageKey => $package) {
            if ($packageManager->isPackageFrozen($packageKey)) {
                continue;
            }
            self::monitorDirectoryIfItExists($fileMonitors['Flow_ConfigurationFiles'], $package->getConfigurationPath(), '\\.yaml$');
            self::monitorDirectoryIfItExists($fileMonitors['Flow_TranslationFiles'], $package->getResourcesPath() . 'Private/Translations/', '\\.xlf');
            if (!in_array($packageKey, $packagesWithConfiguredObjects)) {
                continue;
            }
            foreach ($package->getAutoloadPaths() as $autoloadPath) {
                self::monitorDirectoryIfItExists($fileMonitors['Flow_ClassFiles'], $autoloadPath, '\\.php$');
            }
            if ($context->isTesting() && $package instanceof Package) {
                /** @var Package $package */
                self::monitorDirectoryIfItExists($fileMonitors['Flow_ClassFiles'], $package->getFunctionalTestsPath(), '\\.php$');
            }
        }
        self::monitorDirectoryIfItExists($fileMonitors['Flow_ConfigurationFiles'], FLOW_PATH_CONFIGURATION, '\\.yaml$');
        foreach ($fileMonitors as $fileMonitor) {
            $fileMonitor->detectChanges();
        }
        foreach ($fileMonitors as $fileMonitor) {
            $fileMonitor->shutdownObject();
        }
    }