PHP.SU

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


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

> Описание: ..таких как header, footer, menu
Cooligin
Отправлено: 18 Сентября, 2016 - 13:59:02
Post Id


Новичок


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


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




Сижу я изучаю паттерн mvc(или парадигма?, а то умные дядьки кидаются своими умными словами и не поймешь кто прав, а кто виноват).


Нажмите для увеличения

Вот такая у меня простецкая структура.
Роутер смотрит какую страничку запрашивает пользователь, подключает(если может) класс, а затем вызывает нужный метод (согласно шаблону из routes.php).

И вот тут то возникает вопрос, я бы хотел понять как лучше организовать построение страницы. В плане иметь 3 статичных блока, это Header, Footer, Menu.
Которые должны быть абсолютно одинаковыми на всех страничках. Можно конечно, по-старинке подключать
, но разве это верно?
Наблюдал как в контроллерах собирают что-то вроде:
PHP:
скопировать код в буфер обмена
  1. $test->method('head');
  2. $test->method('content');
  3. $test->method('footer');

опять же, не знаю, насколько хорош этот вариант.
я сделал так:
PHP:
скопировать код в буфер обмена
  1.         public $menu;
  2.         public function __construct() {
  3.             $this->menu = array();
  4.             $this->menu = Menu::getMenuList();
  5.         }

ну и на каждой страничке вызываю как-то так:
PHP:
скопировать код в буфер обмена
  1.     |<?foreach($this->menu as $menuItem):?>
  2.  
  3. <a href="/<?=$menuItem['path']?>">
  4.     <?=$menuItem['name']?>
  5. </a> |
  6. <?endforeach;?>


работать-то работает, но такое надо прописывать ведь в каждом контроллере для каждых различающихся по функциям страничкам, вероятно можно сделать некоторый общий контроллер, а остальные будут его расширять, скажем
PHP:
скопировать код в буфер обмена
  1.  
  2. class MainController{
  3.         public $menu;
  4.         public function __construct() {
  5.             $this->menu = array();
  6.             $this->menu = Menu::getMenuList();
  7.         }
  8. }
  9.  
  10. class NewsController extends MainController{
  11. ...
  12. }
  13.  

в таком случае можно будет какие-то базовые и не изменяющиеся вещи инициализировать прямо-таки сразу для всех страниц.

Надеюсь суть вы поняли вопроса: как наиболее правильно подключать элементы к странице, такие как header, footer, menu.
P.S. я смотрю видео уроки, текстовые уроки, везде примерно одно и то же, рассказывается концепция, там делаем то, там делаем это, некоторые отправляют смотреть готовые фреймворки, пытался, но чет как-то безуспешно, набегом наскоком найти не удалось.

(Отредактировано автором: 18 Сентября, 2016 - 14:18:28)

 
 Top
caballero
Отправлено: 18 Сентября, 2016 - 22:53:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 5994
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




лишнее доказательство что MVC не самая удачная архитектура в вебе.


-----
Open Source учетная система http://zippy[dot]com[dot]ua/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Уроки php »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB