Пример #1
0
 /**
  * Resolves main theme dependencies if they aren't resolved yet.
  */
 protected function ensureDependenciesAreResolved()
 {
     if (false === $this->areDependenciesResolved) {
         $this->themes = array_merge($this->themes, $this->themeDependenciesResolver->getDependencies($this->themes[0]));
         $this->areDependenciesResolved = true;
     }
 }
 function it_adds_theme_parents_to_context_while_setting_theme(ThemeDependenciesResolverInterface $themeDependenciesResolver, ThemeInterface $firstTheme, ThemeInterface $secondTheme)
 {
     $firstTheme->getLogicalName()->willReturn("foo/bar1");
     $firstTheme->getParentsNames()->willReturn(["foo/bar2"]);
     $secondTheme->getLogicalName()->willReturn("foo/bar2");
     $secondTheme->getParentsNames()->willReturn([]);
     $themeDependenciesResolver->getDependencies($firstTheme)->shouldBeCalled()->willReturn([$secondTheme]);
     $this->setTheme($firstTheme);
     $this->getThemes()->shouldHaveCount(2);
     $this->getThemes()->shouldReturn([$firstTheme, $secondTheme]);
 }
 /**
  * {@inheritdoc}
  */
 public function installBundleAssets(BundleInterface $bundle, $targetDir, $symlinkMask)
 {
     $targetDir .= preg_replace('/bundle$/', '', strtolower($bundle->getName()));
     $this->filesystem->remove($targetDir);
     $effectiveSymlinkMask = $symlinkMask;
     foreach ($this->findAssetsPaths($bundle) as $originDir) {
         $effectiveSymlinkMask = min($effectiveSymlinkMask, $this->installVanillaBundleAssets($originDir, $targetDir, $symlinkMask));
     }
     foreach ($this->themeRepository->findAll() as $theme) {
         $themes = array_merge([$theme], $this->themeDependenciesResolver->getDependencies($theme));
         foreach ($this->findAssetsPaths($bundle, $themes) as $originDir) {
             $effectiveSymlinkMask = min($effectiveSymlinkMask, $this->installThemedBundleAssets($theme, $originDir, $targetDir, $symlinkMask));
         }
     }
     return $effectiveSymlinkMask;
 }