/** * @param MvcContextInterface $context * @return null */ public function process(MvcContextInterface $context) { $input = $context->getInput(); $view = $context->getView(); if (!ResourceTreeManager::isTree()) { ResourceTreeManager::loadTree(); } $finder = new FileFinder('resource'); $writer = new FileWriter($finder); $reader = new FileReader($finder); if (!$writer->deleteTree('build', true)) { $err = "could not detete -({$finder->getPath('build')})"; throw new RunTimeException($err); } $list = ResourceTreeManager::getAllPageNames(); if (!is_array($list) || empty($list)) { return; } foreach ($list as $pageName) { $pkg = ResourceTreeManager::getPkg($pageName); $layers = $pkg->getLayers(); $pageStack = new FileStack(); foreach ($layers as $layerName) { $stack = new FileStack(); $layer = ResourceTreeManager::loadLayer($layerName, $stack); $this->buildLayer($layer, $reader, $writer, $pageStack); } $this->buildLayer(ResourceTreeManager::createPageLayer($pageName), $reader, $writer, $pageStack); $themeName = $pkg->getThemeName(); if ($themeName) { $this->buildTheme($themeName, $reader, $writer, $pageStack); } } $view->assign('result', 'build completed'); }