Два вопроса: шаблоны и MVC

Статус
Закрыто для дальнейших ответов.

bor10811

Well-Known Member
Регистрация
04.04.2017
Сообщения
79
Я учусь программированию на php, уже много всего освоил, но есть два вопроса, на которые почему-то я ещё не находил ответов, хотя они очень важные:

1. Как создавать в автоматическом режиме страницы на сайте?

Ведь нельзя же каждый раз открывать панель управления и вручную загружать html-страницы.
Остаётся не ясным, можно ли через админ-панель и вообще php создавать новые html-файлы. Допустим, пользователь на форуме хочет открыть тему (создать страницу), нужно дать ему такую возможность.
Конечно, можно загружать всю информацию в БД (MySQL). Но тогда встаёт другой вопрос: как сделать, чтобы Яндекс индексировал данные из БД? Ведь страница должна выходить в поисковой строке.

2. Где найти подробные объяснения по технологии MVC?

Сразу обращу внимание, что суть и примерное описание самого механизма я знаю. Но остаётся множество вопросов, связанных с мелкими деталями и нюансами. В большинстве статей или видео на данную тему авторы делают так:
- выкладывают целый кусок кода, который состоит иногда из 3-4 строчек
- делают общее описание к нему, типа так: «Определяем, какой контроллер и action обрабатывает запрос»

Это всё очень хорошо, пользуясь общими рекомендациями и приведённым кодом (который кстати писал не я), можно создать всю структуру MVC. Но я хочу, чтобы мне разжевали всё по полочкам, чтобы ткнули пальцем в каждую команду и переменную и сказали, что она делает. А не широкими мазками по целым строчкам прошлись.

Вот сайт, с помощью которого я понял и освоил ООП: http://theory.phphtml.net/books/php/

Там прямо по деталям, каждая буква и запятая разбирается, с множеством примеров и нюансов работы. Но есть одна проблема – там нет MVC.
Знает ли кто-то хорошие сайты, где эта тема разбиралась бы ОЧЕНЬ подробно.
 

miketomlin

Well-Known Member
Регистрация
12.11.2013
Сообщения
101
Плохо учитесь. Это основы.

1. Как хотите. Общий принцип – объединение фактических данных из БД со структурной разметкой, обычно хранящейся в одном или нескольких файлах и называемой шаблоном. Через админку вы в первую очередь редактируете данные. Возможности редактировать шаблоны в ней может и не быть. Это обычно и не требуется плюс защищает от шаловливых ручек неопытного админа/контент-менеджера.

2. MVC – не догма, реализации могут существенно отличаться. Сами должны дойти до наиболее подходящей для вас в большинстве случаев реализации или использовать готовое. Есть и более простые паттерны, например DAT, подчеркивающий осн. принцип формирования страниц, о кот. я говорил выше:
1) выбираем данные из БД;
2) выполняем шаблон с этими данными (или данными об ошибке, если на пред. этапе произошла ошибка).
Реализации тоже могут существенно отличаться, например вот описание простого каркаса с единым фронтом (что-то вроде фронт-контроллера в MVC) и возможностью использовать вложенные шаблоны. А вот моя статья с описанием и демкой того, как при помощи этого каркаса, пары вложенных шаблонов и незамысловатого кода состряпать сайт со списком статей на нескольких страницах и сорока статьями на отдельных страницах.
 

bor10811

Well-Known Member
Регистрация
04.04.2017
Сообщения
79
miketomlin, спасибо за ответ. Остался один вопрос. Мне всегда казалось, что поисковые роботы не заходят в БД просто так. Разве просто подсоединить через php БД достаточно, чтобы поисковый робот индексировал информацию в БД? Не нужно никаких команд? Хватит простого подключения БД через SQL?

Вторая ссылка (на вашу статью) с ошибкой, проверьте её.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Вы так и не поняли что вам написали....а уже в MVC лезете.
Поисковики не лезут в БД. Им, как и остальным пользователям надо на PHP или другом языке выдавать структурированное представление базы.

В двух словах, кратко опишу что есть во всех статьях по шаблонам:
Предположим у нас есть БД:
ID | ИМЯ
1 | Оля
2 | Катя
3 | ЕленаПоисковики и люди в эту БД не лезут.
Для пользователей надо вывод делать им понятный.

Шаблонируем нашу страничку
Код:
подключаем шапку (include header), тут будет логотип, скрипты и стили, (полу)статичное оформление страницы

Создаём ЦИКЛ: 
 <p>Имя пользователя под № ЗАПРОС_В_БД_ПОЛУЧИТЬ_ID : <b>ЗАПРОС_В_БД_ПОЛУЧИТЬ_ИМЯ</b></p>

подключаем футер (include footer.php)
На выходе будет

Тут наша шапка с названием сайта и логотипом

Имя пользователя под № 1 : Оля
Имя пользователя под № 2 : Катя
Имя пользователя под № 3 : Елена

Тут наш футер с чем-то ещё
Шаблонизирование тут как раз шапка и футер

Теперь допустим у нас есть статьи, много статей, они хранятся также в БД
ID | текст статьи
1 | аааа
2 | бббб
3 | ввввВот шаблоны тут и понадобятся, но тут, как вариант уже применяет $_GET (ЧПУ сайта).
Допустим человек зашёл на сайт
мойсайтточкару/статья=1
Код:
подключаем шапку (include header), тут будет логотип, скрипты и стили, (полу)статичное оформление страницы

ID = $_GET['статья'];
<b>ЗАПРОС_В_БД ГДЕ СТАТЬЯ == ID<b>

подключаем футер (include footer.php)
Таким образом человек перейдя по ссылке мойсайтточкару/статья=1 получит такое
Тут наша шапка с названием сайта и логотипом

аааа

Тут наш футер с чем-то ещё
по ссылке мойсайтточкару/статья=2 получит такое
Тут наша шапка с названием сайта и логотипом

бббб

Тут наш футер с чем-то ещё
И так далее.

На начальном этапе понимания шаблонизации - шаблон это вынос (полу)статических (повторяемых) элементов в отдельные файлы. В более сложном понимание - это разделение шаблонов вёрстки, функций и остальных элементов на блоки, которые подключаются там, где это надо. Тут уже начинаются разные модели шаблоназиции. MVC - это одна из таких моделей и более сложная модель шаблонизации, чем описал выше.

Цитата с Вики
Шаблонизатор (в web) — программное обеспечение, позволяющее использовать html-шаблоны для генерации конечных html-страниц. Основная цель использования шаблонизаторов — это отделение представления данных от исполняемого кода. Часто это необходимо для обеспечения возможности параллельной работы программиста и дизайнера-верстальщика. Использование шаблонизаторов часто улучшает читаемость кода и внесение изменений во внешний вид, когда проект целиком выполняет один человек.
Мне самому стыдно за такое примитивное описание на псевдокоде, но надеюсь понятно будет.

Более развёрнуто по MVC написано умными дядями на Википедии
https://ru.wikipedia.org/wiki/Model-View-Controller

Рекомендую начать от туда, а потом уже читать разные статьи для более глубокого понимания.
 

miketomlin

Well-Known Member
Регистрация
12.11.2013
Сообщения
101
[member=bor10811], странные вопросы для человека, изучающего программирование. ПС ничего об использовании или неиспользовании БД на вашем сайте не знают. Они работают со страницами/прочими типами содержимого, получаемыми на выходе в результате объединения данных из БД и шаблонов. Для улучшения индексирования или наоборот запрета вплоть до полного используются SEO-факторы вроде перелинковки, карты сайты, директив роботс и т.п.

Да, просматривал локальную копию, ссылку на кот. и запостил. Укажите в имени хоста ru или найдите статью «Как сделать вывод списка статей» на сайте вручную (поиск вроде бы не работает, но там их немного).

P.S. Комменты к статье тоже почитайте.
 

bor10811

Well-Known Member
Регистрация
04.04.2017
Сообщения
79
Всем спасибо, тема закрыта
 
Статус
Закрыто для дальнейших ответов.
Верх Низ