Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2013, 04:25   #1
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание PHP Паттерн MVC

Здравствуйте

Опишу что как работает. А потом собственно вопрос о возникшей проблеме.

Имеется одна точка входа в приложение, "Index.php" - все запросы пользователя попадают в этот модуль.

Изначально в "Index.php" я выдаю сессию и куки, после чего подключаю модуль "Router.php" в нем класс маршрутизации. Который парсит URL и подключает нужный контроллер соответственно который подключает модель и вызывает в ней нужный нам метод, после передает полученные данные от модели в представление. Вот так мы получаем данные готовые к отображению.

А теперь проблема.
Также у меня есть общий шаблон страницы сайта, так называемый "layout.php".

Проблема собственно в том, что я не знаю как правильно реализовать подключения модуля "layout.php". Точнее где луче его подключить чтобы выглядело красиво и с минимальной зависимостью от чего либо.

Есть мысль по этому поводу но может она не совсем корректна.
Можно подключить его в "Router.php" а в самом "layout.php" уже в нужном месте подключать нужный нам контроллер.

Или предложите вариант красивее и корректней.
И если еще где-то я не прав, буду очень рад если поправите меня
Заранее очень благодарен
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 22.05.2013, 14:39   #2
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

Как вы в layout будете подключать controller я вобще не понимаю.
layout это часть представления, поетому прикрутить его надо к представлению.
buriat вне форума Ответить с цитированием
Старый 23.05.2013, 01:32   #3
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Сообщение

Цитата:
Сообщение от buriat Посмотреть сообщение
Как вы в layout будете подключать controller я вобще не понимаю.
layout это часть представления, поетому прикрутить его надо к представлению.
Я думал вот как реализовать.
В Router.php подключать layout.php - передавая в него имя контроллера и там его уже и подключать
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 23.05.2013, 10:39   #4
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

покажите пример layout.php
buriat вне форума Ответить с цитированием
Старый 23.05.2013, 12:49   #5
koctik1
 
Регистрация: 10.07.2012
Сообщений: 4
По умолчанию

Работа файлов по схеме MVC это чем то похоже наверняка с работой их как и в фрэймворке Codelgniter где происходит взаимосвязь между собой контроллера <=> моделей <=> вида с применением хелперов и библиотек.
koctik1 вне форума Ответить с цитированием
Старый 23.05.2013, 16:42   #6
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Радость

Цитата:
Сообщение от koctik1 Посмотреть сообщение
Работа файлов по схеме MVC это чем то похоже наверняка с работой их как и в фрэймворке Codelgniter где происходит взаимосвязь между собой контроллера <=> моделей <=> вида с применением хелперов и библиотек.
Большинство фрэймворков работает по схеме MVC.
контроллера <=> моделей <=> вида - это и есть MVC
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 23.05.2013, 16:47   #7
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Сообщение

Цитата:
Сообщение от buriat Посмотреть сообщение
покажите пример layout.php
Код:
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Общий шаблон страницы</title>
  </head>
  <body>
    <div>Header</div>
    <div>Menu</div>
    
    <div>
      <?php

      ?>
    </div>
    
    <div>Footer</div>
  </body>
</html>
Простая HTML верстка.
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 23.05.2013, 17:33   #8
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

И вы хотите отсюда контроллера команды вызывать? Это не годится )
Контроллер не должен возвращать данные, он должен передать их представлению.
В классе представления подключайте этот layout.php, вставляйте в него нужные данные и выводите.

Последний раз редактировалось buriat; 24.05.2013 в 11:07.
buriat вне форума Ответить с цитированием
Старый 25.05.2013, 06:18   #9
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Радость

Огромное спасибо всем за внимание
Проблема решена.

Немного о решении проблемы.
написал класс
PHP код:
class view {
  public function 
rendering($content_view$layout_view$arr_data) {
    
extract($arr_data); # Преобразуем элементы массива в переменные.
    
include_once 'Application/Views/'.$layout_view.'.php'# Подключаем общий шаблон.
  
}

А вот сам общий шаблон выглядит так:

Код:
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title><?=$title_page?></title>
  </head>
  <body>
    <div style="width: 800px; background: #ccccff; margin: auto; border-radius: 5px;">
      <?php
        include_once 'Application/Views/'.$content_view.'.php';
      ?>
    </div>
  </body>
</html>
Вот собственно и все
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 29.09.2013, 17:16   #10
dfjgkgh
 
Регистрация: 05.09.2013
Сообщений: 4
По умолчанию

Все о mvc в php
http://mvcphp.ru/
dfjgkgh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паттерн Начинающий програм Помощь студентам 0 20.05.2013 19:41
Паттерн наблюдадель. c# Skull_psyhothik Помощь студентам 0 22.04.2013 20:38
Быстродействие PHP ( MVC ) 1ord PHP 1 05.03.2011 20:53
паттерн singleton zhenya.ya Общие вопросы C/C++ 1 26.11.2010 03:11
Паттерн MVP Vistar Общие вопросы .NET 0 11.09.2010 18:45