В общем есть код-шаблонизатора, написан в процедурном стиле. Хочу переписать его на ООП, но возникает множество вопросов, а точнее проблем. (весь код представленный ниже лишь легкий аналог, тк оригинал большой)
В процедурке код выглядит следующим образом:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $left_menu = [
- ['title' => 'Запись', 'link' => 'order.php'],
- ['title' => 'Избранное', 'link' => 'favorites.php'],
- ['title' => 'Заявки', 'link' => 'orders.php']
- ];
- $variables = [
- 'index' => [
- 'header' => renderPage('header'),
- 'company_name' => 'Компания',
- 'left_menu' => menuGenerator($left_menu),
- ],
- ];
- function renderPage ($page,$variables = [])
- {
- $file = TPL_DIR . $page . '.tpl';
- $templateContent = '';
- echo 'Шаблон ' . $file . ' не найден';
- exit;
- }
- echo 'Шаблон ' . $file . ' пустой';
- exit;
- }
- $tempVariables = [];
- $tempVariables = $GLOBALS['variables'][$page];
- }
- foreach ($variables as $key => $value) {
- $tempVariables[$key] = $value;
- }
- }
- $variables = $tempVariables;
- foreach ($variables as $key => $value) {
- }
- }
- }
- return $templateContent;
- }
- function menuGenerator($items)
- {
- $result = '<ul class="nav navbar-nav">';
- foreach ($items as $item) {
- $result .= '<li>';
- $result .= '<a href="' . $item['link'] . '">' . $item['title'] . '</a>';
- $result .= '</li>';
- }
- $result .= '</ul>';
- return $result;