/** * Prepares a mirror of public package resources that is accessible through * the web server directly. * * @param array $activePackages * @return void */ public function publishPublicPackageResources(array $activePackages) { if ($this->settings['resource']['publishing']['detectPackageResourceChanges'] === FALSE && $this->statusCache->has('packageResourcesPublished')) { return; } foreach ($activePackages as $packageKey => $package) { $this->resourcePublisher->publishStaticResources($package->getResourcesPath() . 'Public/', 'Packages/' . $packageKey . '/'); } if (!$this->statusCache->has('packageResourcesPublished')) { $this->statusCache->set('packageResourcesPublished', 'y', array(\TYPO3\FLOW3\Cache\Frontend\FrontendInterface::TAG_PACKAGE)); } }
/** * Checks which classes lack a cache entry and removes their reflection data * accordingly. * * @return void */ protected function forgetChangedClasses() { $frozenNamespaces = array(); foreach ($this->packageManager->getAvailablePackages() as $packageKey => $package) { if ($this->packageManager->isPackageFrozen($packageKey)) { $frozenNamespaces[] = $package->getPackageNamespace(); } } $classNames = array_keys($this->classReflectionData); foreach ($frozenNamespaces as $namespace) { $namespace .= '\\'; $namespaceLength = strlen($namespace); foreach ($classNames as $index => $className) { if (substr($className, 0, $namespaceLength) === $namespace) { unset($classNames[$index]); } } } foreach ($classNames as $className) { if (!$this->statusCache->has(str_replace('\\', '_', $className))) { $this->forgetClass($className); } } }