PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как создать движок используя PHTML/PHP/SQL?
John Berden
Отправлено: 05 Июля, 2016 - 12:00:00
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Здравствуйте всем.
Имеется такой вопрос.
Я изучил основы PHP, было немного практики. Решал задачи такие, как вывод статей, сортировка, некоторые задачи, связанные на прямую с PHP и т.д.
Недавно пробовал создать свой движок, и он выглядел примерно так:
Файлы header.php, menu.php, content.php, footer.php. Отображение страницы.
В header и content, выполнялись проверки на текущую страницу, и в зависимости от того, какая страница сейчас активна, выполнялся код. Например:
PHP:
скопировать код в буфер обмена
  1. if($_SERVER["PHP_SELF"]=="index.php"])
  2. echo '<h1>Добро пожаловать на главную страницу</h1>
  3. Другой текст...';
  4.  

Например если был открыт файл contact.php, выводилась форма обратной связи. А файл mail.php её обрабатывал.
С header точно также. В зависимости от страницы в мета тегах указывалось описание страницы, ключевые слова. Если это файл article.php, проверялся в GET id, отправлялся в базу данных, полностью статья извлекалась, описание и ключевые слова подставлялись в мета description и keywords соответственно, а content выводил статью.
Но потом мне сказали, да и я сам начал понимать, что не только странный способ, но ещё и громоздкий и не надёжный.
Мне сказали взглянуть в сторону MVC, я почитал статью в википедии, на хабре. Но из всего я понял, что:
    Есть модуль, который отвечает за саму программу сайта;
    Есть вид, который отвечает за саму страницу сайта;
    И есть контроллер, который отвечает за объединение модуля и вида.

Но больше я ничего не понял.
Мне говорили, что можно делать шаблон tpl и использовать, но как...
В интернете если есть примеры создания движков, то там одна каша.
Помогите пожалуйста разобраться.
Нужен примитивный сайт, где есть меню, и в зависимости от того, на какой я странице, генерировалось содержание страницы. Если я на главной - информация о сайте, если я на обратная связь - форма обратной связи, если я на статьи - отображение списка статей и т.д и т.п.
Как такое реализовать я представляю только в том виде, как я описал. Но меня интересует более удобные и эффективные способы.
Может какой фреймворк заюзать, или ещё что?
Всем заранее спасибо.
 
 Top
igosja
Отправлено: 05 Июля, 2016 - 14:32:02
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2013  
Откуда: https://vhol.org


Помог: 3 раз(а)




Смысл MVC в том, чтобы разделить php, mysql и html.
Когда все это находится в одном файле, его сложно редактировать, особенно если файл большой. Все превращается в кашу.
В mvc "m" отвечает за работу с sql, там настраиваются доступы к таблицам, связи, сортировки, фильтрации, поиск и прочие вещи.
"v" отвечает за вывод html кода
"с" отвечает за объединение этих вещей и прием дополнительной информации - get, post данных, чтение сессии и тому подобное.
Для изучения можете скачать любой mvc-framework с демо страницами. (Пример - http://www.yiiframework.com/demos/)

(Отредактировано автором: 05 Июля, 2016 - 17:51:54)

 
 Top
John Berden
Отправлено: 05 Июля, 2016 - 17:39:06
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




А где можно на простом языке почитать о реализации?
 
 Top
igosja
Отправлено: 05 Июля, 2016 - 17:54:16
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2013  
Откуда: https://vhol.org


Помог: 3 раз(а)




Для примера - https://habrahabr[dot]ru/post/150267/
Ну и google в помощь, статей на эту тему очень много.
 
 Top
Bio man
Отправлено: 05 Июля, 2016 - 19:02:57
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2752
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




igosja, не так это все.
MVC не имеет никакого отношения к БД.
M = модель - некий объект хранящий какие-то данные. Слой БД нужно реализовывать отдельно и никоем образом не привязывать к моделям (не люблю yii за такую халатность)
V = вид - подсистема отображения. Это могут быть простые php файлы, в которых происходит подстановка переменных, так сложная система рендеринга.
C = контроллер - некий объект принимающий запросы и возвращающий результат

+ ко всему не обойтись без фронт-контроллера, роутера, репозиториев (как дополнение к моделям) и других плюшек, без которых жизнь становится сложной.

А просто MVC в вакууме не имеет практического применения, только в купе с другими паттернами (некоторые я назвал выше) этот паттерн будет полезен.
 
 Top
John Berden
Отправлено: 06 Июля, 2016 - 03:42:15
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Я это на хебре видел уже.
Меня интересует что нибудь по проще.
 
 Top
file.shreder
Отправлено: 07 Июля, 2016 - 10:03:17
Post Id


Посетитель


Покинул форум
Сообщений всего: 286
Дата рег-ции: Окт. 2014  


Помог: 2 раз(а)

[+]


John Berden пишет:
Я это на хебре видел уже.
Меня интересует что нибудь по проще.


Есть очень простая вещь, для тех кто начинает изучать MVC с нуля
 
 Top
John Berden
Отправлено: 07 Июля, 2016 - 10:15:19
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Вот гляньте. Это можно сделать лучше, или нормально таким образом?
Скачать файл: mysite.com.7z
Скачан раз: 39
 
 Top
exlant
Отправлено: 08 Июля, 2016 - 05:04:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




как для первого знакомства с php-mysql-html то нормально))

а на более-менее сайтах все обстоит намного сложнее

и тут нет реализации MVC, даже намека, просто index файл подключающий остальные файлы

А вообще самый главный вопрос, зачем оно вам надо? Если для фана то сойдет, что то выводится и хорошо. Если что-то больше чем фан, то нужно еще очень многому учиться, и лучше взять какой-то пособник или какое-то обучающие видео, что-бы по нему идти, имхо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB