@vladimirir

Чем плохо выносить повторяющиеся элементы дизайна в отдельные файлы и подключать их потом с помощью PHP?

Собственно, весь вопрос выше уже сформулирован. Хотелось бы узнать, почему всё же стоит использовать что-то другое для этих целей.
  • Вопрос задан
  • 525 просмотров
Решения вопроса 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
Тут, как обычно, не одна проблема, а три.

Первая проблема - это, как всегда, неумение задавать вопросы.
Вот и сейчас - вопрос "чем плохо ходить пешком?" Что можно ответить на этот вопрос?
Но потом выясняется что вопрос на самом деле "Я живу в 20 километрах от работы. Чем плохо ходить на работу пешком?".

То есть вопрос у нас на самом деле, "Чем плохо выносить повторяющиеся элементы HTML в отдельные файлы и подключать их потом с помощью include?". Этот вопрос уже будет более осмысленный, и на него даже можно дать ответ не выглядя при этом идиотом.

Вторая проблема заключается в том, что подход с "хидером и футером" реально неудобен и устарел уже лет 20 как. И вместо него используются шаблонизаторы. Тупо редактировать хтмл удобнее когда он лежит в одном файле, а не в header.php. footer.php. menu.php, banners.php и еще 10 файлах.
И это я даже не заикаюсь о случае, когда на разных страницах надо поключать разные файлы стилей и скриптов.

И третья проблема заключается в том, что хотя в принципе и можно что-то несложное накалякать с хидером и футером, но поголовно все новички все равно клепают их неправильно - а именно вкрячивают хидер до того, как скрипт вообще начнет работу. И потом имеют все прелести невозможности вывести НТТР заголовок, поменять что-то в хидере в зависимости от выводимых данных, поменять формат вывода или аварийно завершить работу.
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Тем, что в случае использования php вам совершенно ничего не мешает подрубить шаблонизатор, например twig, и делать разбивку страницы более или менее красиво.

К примеру, задать общий лейаут, прописать в нем общие блоки, и страницы расширять от него.

base.twig
<html>
<head></head>
<body>
  <header>...</header>
  <main>{% block main %}{% endblock %}</main>
  <footer>...</footer>
</body>
</html>


index.twig
{% extend 'base.twig' %}
{% block main %}
  Главная страница
{% endblock %}


about-us.twig
{% extend 'base.twig' %}
{% block main %}
  Интереснейший текст о компании
{% endblock %}
Ответ написан
catdesign
@catdesign
Веб-разработчик
Абсолютно ничем не плохо. Все ровно наоборот.
Нужно руководствоваться поставленной задачей. Если у вас одностраничный сайт, то выносить все отдельно нет смысла. Хотя в особо длинных лендингах это позволяет облегчить читаемость кода.

Что касается многостраничных сайтов, то разбиение на фрагменты жизненно необходимо, потому что главное правило программиста - не дублировать код. Ленивый программист = хороший программист!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Зависит. Если вы на одной странице 40 раз запрашиваете файл с кусочком хтмл - это тупость. Файловая система не самая производительная часть компьютеров, обращение к дискам всегда было (и все еще является) узким местом. Если это разовый модуль - все ок, вы все равно его откуда-то из файловой системы должны взять, есть некоторый оверхед на открытие еще одного файлового дескриптора в рамках ОС, но в целом это не критично.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы