/** * @param ResourceLayerInterface $layer * @return int */ protected function buildLayer(ResourceLayerInterface $layer, FileReaderInterface $reader, FileWriterInterface $writer, FileStackInterface $pageStack) { $stack = $layer->getFileStack(); $vendor = $layer->getVendor(); $buildDir = $layer->getBuildDir(); $buildFile = $layer->getBuildFile(); $jsBuildFile = "{$buildFile}.js"; $cssBuildFile = "{$buildFile}.css"; $finder = $reader->getFileFinder(); if (!$finder->isDir($buildDir)) { if (!$writer->mkdir($buildDir, 0755, true)) { $path = $finder->getPath($buildDir); $err = "could not create dir at -({$path})"; throw new RunTimeException($err); } } if ($layer->isJs()) { $list = $pageStack->diff('js', $layer->getAllJsSourcePaths()); $result = $this->makeString('js', $list, $reader, $pageStack); $writer->putContent($result, $jsBuildFile); } if ($layer->isCss()) { $list = $pageStack->diff('css', $layer->getAllCssSourcePaths()); $result = $this->makeString('css', $list, $reader, $pageStack); $writer->putContent($result, $cssBuildFile); } }