@motcart

Как отделить PHP от HTML части?

Хорошим тоном считается отдельное написание php и html кода для сайта. Большую часть сайта разобрал, но стались некоторые моменты. Есть такая часть кода:
<?php
url_list ('1');
foreach ($subcategory_array as $menu_item) {
    echo '<a href="' . $menu_item['url'] . '/">' . $menu_item['title'] . '</a>'; 
}
?>

Функция url_list() отдает многомерный массив с ссылками и названиями для вывода меню сайта. Параметр '1' задает из какого раздела брать ссылки.

Сама функция выглядит так (в подключаемом файле):
function get_category_list ($order) {
    global $url_array;
    $url_list = mysql_query ("SELECT * FROM `urls`");
    while ($url = mysql_fetch_array ($url_list, MYSQL_ASSOC)) {

            $url_array[] = array (
                'title' => $category['title'], 
                'url'   => $category['url']);
        }
    }
}


Как можно избавиться от php части в первом листинге?

UPD: всем спасибо за советы и обсуждения. Я еще в начале изучения php, поэтому шаблонизаторы и фреймворки пока рассматривать не буду.
  • Вопрос задан
  • 2654 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
отдельное написание php и html кода для сайта

Разделение уровня на котором данные мы получаем и обрабатываем от уровня представления.

в вашем случае "отделение" ваше никак не поможет сделать код лучше так как вы всеравно фигачите запросы из шаблонов. Так что просто не парьтесь. Пусть уж лучше ваш код будет простым говнокодом чем сложным.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Используйте шаблонизаторы вроде smarty и определяйте для них нужные функции вроде этой.
Ответ написан
@asd111
Посмотрите какой нибудь фреймворк на досуге. Yii2, Symfony 2, Laravel.
Ответ написан
@name_tuki
Да собственно это не реально, можно минимизировать.
mvc или hmvc, есть еще 1н способ, но его лучше не использовать.
Если приложение маленькое то mvc лучше всего подойдет, если большое то уже hmvc, но оно станет уже сложнее.
В любом случаи, там где есть php + html, они по любому будут пересекаться.
По мне ответ очевиден.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы