Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
Здравствуйте всем.
Имеется такой вопрос.
Я изучил основы PHP, было немного практики. Решал задачи такие, как вывод статей, сортировка, некоторые задачи, связанные на прямую с PHP и т.д.
Недавно пробовал создать свой движок, и он выглядел примерно так:
Файлы header.php, menu.php, content.php, footer.php. Отображение страницы.
В header и content, выполнялись проверки на текущую страницу, и в зависимости от того, какая страница сейчас активна, выполнялся код. Например:
echo'<h1>Добро пожаловать на главную страницу</h1>
Другой текст...';
Например если был открыт файл contact.php, выводилась форма обратной связи. А файл mail.php её обрабатывал.
С header точно также. В зависимости от страницы в мета тегах указывалось описание страницы, ключевые слова. Если это файл article.php, проверялся в GET id, отправлялся в базу данных, полностью статья извлекалась, описание и ключевые слова подставлялись в мета description и keywords соответственно, а content выводил статью.
Но потом мне сказали, да и я сам начал понимать, что не только странный способ, но ещё и громоздкий и не надёжный.
Мне сказали взглянуть в сторону MVC, я почитал статью в википедии, на хабре. Но из всего я понял, что:
Есть модуль, который отвечает за саму программу сайта;
Есть вид, который отвечает за саму страницу сайта;
И есть контроллер, который отвечает за объединение модуля и вида.
Но больше я ничего не понял.
Мне говорили, что можно делать шаблон tpl и использовать, но как...
В интернете если есть примеры создания движков, то там одна каша.
Помогите пожалуйста разобраться.
Нужен примитивный сайт, где есть меню, и в зависимости от того, на какой я странице, генерировалось содержание страницы. Если я на главной - информация о сайте, если я на обратная связь - форма обратной связи, если я на статьи - отображение списка статей и т.д и т.п.
Как такое реализовать я представляю только в том виде, как я описал. Но меня интересует более удобные и эффективные способы.
Может какой фреймворк заюзать, или ещё что?
Всем заранее спасибо.
igosja
Отправлено: 05 Июля, 2016 - 14:32:02
Гость
Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2013 Откуда: https://vhol.org
Помог: 3 раз(а)
Смысл MVC в том, чтобы разделить php, mysql и html.
Когда все это находится в одном файле, его сложно редактировать, особенно если файл большой. Все превращается в кашу.
В mvc "m" отвечает за работу с sql, там настраиваются доступы к таблицам, связи, сортировки, фильтрации, поиск и прочие вещи.
"v" отвечает за вывод html кода
"с" отвечает за объединение этих вещей и прием дополнительной информации - get, post данных, чтение сессии и тому подобное.
Для изучения можете скачать любой mvc-framework с демо страницами. (Пример - http://www.yiiframework.com/demos/)
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
igosja, не так это все.
MVC не имеет никакого отношения к БД.
M = модель - некий объект хранящий какие-то данные. Слой БД нужно реализовывать отдельно и никоем образом не привязывать к моделям (не люблю yii за такую халатность)
V = вид - подсистема отображения. Это могут быть простые php файлы, в которых происходит подстановка переменных, так сложная система рендеринга.
C = контроллер - некий объект принимающий запросы и возвращающий результат
+ ко всему не обойтись без фронт-контроллера, роутера, репозиториев (как дополнение к моделям) и других плюшек, без которых жизнь становится сложной.
А просто MVC в вакууме не имеет практического применения, только в купе с другими паттернами (некоторые я назвал выше) этот паттерн будет полезен.
John Berden
Отправлено: 06 Июля, 2016 - 03:42:15
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
Я это на хебре видел уже.
Меня интересует что нибудь по проще.
file.shreder
Отправлено: 07 Июля, 2016 - 10:03:17
Посетитель
Покинул форум
Сообщений всего: 286
Дата рег-ции: Окт. 2014
Помог: 2 раз(а)
[+]
John Berden пишет:
Я это на хебре видел уже.
Меня интересует что нибудь по проще.
Есть очень простая вещь, для тех кто начинает изучать MVC с нуля
John Berden
Отправлено: 07 Июля, 2016 - 10:15:19
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016
Помог: 0 раз(а)
Вот гляньте. Это можно сделать лучше, или нормально таким образом?
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
как для первого знакомства с php-mysql-html то нормально))
а на более-менее сайтах все обстоит намного сложнее
и тут нет реализации MVC, даже намека, просто index файл подключающий остальные файлы
А вообще самый главный вопрос, зачем оно вам надо? Если для фана то сойдет, что то выводится и хорошо. Если что-то больше чем фан, то нужно еще очень многому учиться, и лучше взять какой-то пособник или какое-то обучающие видео, что-бы по нему идти, имхо!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.