Exemplo n.º 1
0
 /**
  * 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));
     }
 }
Exemplo n.º 2
0
 /**
  * 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);
         }
     }
 }