function render_result($data) { if ($data !== null) { if (is_array($data)) { if (isset($data[Block::MARKER_KEY])) { $block_name = $data[Block::MARKER_KEY]; $block = BlockFactory::create($block_name, $data); return $block->__toString(); } if (isset($data[Layout::MARKER_KEY])) { $layout_name = $data[Layout::MARKER_KEY]; //il layout ha bisogno della vista dell'albero ma forse la posso passare anche così $layout = LayoutFactory::create($layout_name, $data); return $layout->__toString(); } $collected = ""; foreach ($data as $k => $v) { $collected .= render_result($v); } return $collected; } //nel caso in cui non sia un blocco e non sia un layout stampo quello che trovo :) return $data; } }