Esempio n. 1
0
 public function testFiles()
 {
     $timestamp = '200000';
     $templateId = 5;
     $shopId = 4;
     $templateMock = $this->createTemplateMock($templateId);
     $shopMock = $this->createShopMock($shopId, $templateMock);
     $filenameHash = $timestamp . '_' . md5($timestamp . $templateId . $shopId . \Shopware::REVISION);
     $expected = '/my/root/dir/web/cache/' . $filenameHash . '.css';
     $this->assertEquals($expected, $this->pathResolver->getCssFilePath($shopMock, $timestamp));
     $expected = '/my/root/dir/web/cache/' . $filenameHash . '.js';
     $this->assertEquals($expected, $this->pathResolver->getJsFilePath($shopMock, $timestamp));
 }
Esempio n. 2
0
 /**
  * Compiles the javascript files for the passed shop template.
  *
  * @param $timestamp
  * @param Shop\Template $template
  * @param Shop\Shop $shop
  */
 public function compileJavascript($timestamp, Shop\Template $template, Shop\Shop $shop)
 {
     if ($shop->getMain()) {
         $shop = $shop->getMain();
     }
     $file = $this->pathResolver->getJsFilePath($shop, $timestamp);
     $file = new \SplFileObject($file, "a");
     if (!$file->flock(LOCK_EX)) {
         return;
     }
     $file->ftruncate(0);
     $settings = $this->service->getSystemConfiguration(AbstractQuery::HYDRATE_OBJECT);
     $javascriptFiles = $this->collectJavascriptFiles($template, $shop);
     $content = '';
     foreach ($javascriptFiles as $jsFile) {
         $content .= file_get_contents($jsFile) . "\n";
     }
     if ($settings->getCompressJs()) {
         $content = $this->jsCompressor->compress($content);
     }
     $file->fwrite($content);
     $file->flock(LOCK_UN);
     // release the lock
 }