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