dakata__92
Super Moderator
Анонимен това е моят код който с четене и пробване сглобих. Колегата незнам как иска да изглежда кода в контролерите от цитата ми. Реално той иска да пиша в темплейта кой да въвежда а аз директно на 1 ниво си подавам в кода какво да ми зарежда. Иска да го автоматизирам за всичките контролери затова ме кара да го въвеждам в темплейта кой е следващият и директно да го зарежда. Така само че ми се струва че губя възможността на някоя страница да не изграждам следващият контролер от темплейта @show('head') а примерно да генерирам точно определен друг код. Но можеби не съм разбрал идеята на колегата напълно, защото не съм го виждал кода му как ще изглежда по неговото виждане в контролерите и самите темплейтчета.
dakata__92 каза:Това е друго нещо, както се получи. Има последователна структура!
В контролерите на страниците изграждам така:
PHP:$template = $this->getTemplateEngine(); return $template->render(MODEL_VIEW_FOLDER.'main.php',array( 'head' => $template->render(MODEL_VIEW_FOLDER.'mainhead.php'), 'body' => $template->render(MODEL_VIEW_FOLDER.'mainbody.php',array( 'header' => 'Еdit page<br>'.$template->render(MODEL_VIEW_FOLDER.'header.php',array( 'navigation' => $links )), 'footer' => $template->render(MODEL_VIEW_FOLDER.'footer.php') )) ));
В темплейта правя така:
PHP:<!DOCTYPE html> <html> <head> <?php print $head; ?> </head> <body> <?php print $body; ?> </body> </html>
Рендера ми е:
PHP:public function render($__file, Array $__data = Array()) { if ($this->isFileExists($__file)) { if ($__data) { extract($__data); } ob_start(); include($__file); $__outputBuffer = ob_get_contents(); ob_end_clean(); return $__outputBuffer; } return false; }
И мисля, че така е във пъъъти по-добре!