Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: структура сайта(шаблона) mvc ооп
 
 автор: mister_pipin   (11.03.2012 в 22:40)   письмо автору
 
 

Всем привет, помогите или подскажите как правильно нужно создать шаблон сайта при использовании MVC.
сейчас представлю структуру как я ее понимаю:
корневая папка:
файл index.php
файл config.php 
папка templ
             - файл ./templ/tmpl.php (сам шаблон)
папка modul
            - папка poisk
                           - файл ./modul/poisk/controller.php
                           - файл ./modul/poisk/model.php
                           - файл ./modul/poisk/view.php
            - папка pogoda
                           - файл ./modul/pogoda/controller.php
                           - файл ./modul/pogoda/model.php
                           - файл ./modul/pogoda/view.php

И таким образом можно писать много модулей и добавлять и на страницу в нужное нам место.
Как пример давайте рассмотрим файл шаблона, он имеет вид:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Документ без названия</title>
</head>

<body>
<table width="980" border="1" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td>ТУТ НУЖНО ВЫВЕСТИ ПОИСК</td>
    <td>ТУТ НУЖНО ВЫВЕСТИ ПОГОДУ</td>
  </tr>
</table>
</body>
</html>

Я пока не понимаю как вызовом файла, либо переменной можно получить нужный данные из модуля в нужном нам месте на сайте.
Заранее спасибо, надеюсь моя мысль понятно изложена.

  Ответить  
 
 автор: cheops   (13.03.2012 в 17:31)   письмо автору
 
   для: mister_pipin   (11.03.2012 в 22:40)
 

Следует четко понимать, что вот это тоже вид (view)
 - папка templ 
    - файл ./templ/tmpl.php (сам шаблон)
а база данных - это тоже модель.

Шаблон вы должны скормить вид (view), который и выдаст вам преобразованный HTML-код, при этом обратиться к контроллеру, а тот к модели.

  Ответить  
 
 автор: mister_pipin   (21.03.2012 в 02:40)   письмо автору
 
   для: cheops   (13.03.2012 в 17:31)
 

Если правильно понимаю то принцип действия следующий.
При загрузке страницы мы подключаем контролер, модель и вид до любого вывода информации на сайте.

Срабатывает контроллер - взаимодействует с моделью, модель возвращает данные контроллеру. Контроллер отдает данные для вывода виду.

Получается что вид уже заполнен нужной нам информацией. Теперь что бы эта информация отобразилась нужно именно этот файл(к примеру с помощью include) подключить к шаблону?.

В данном примере создается 2 класса, контроллер и модель. В виде только разметка хтмл, яваскрипт, цсс и нужные нам переменные которые мы взяли из контроллера.

Или лучше для вида также создать класс?

  Ответить  
 
 автор: cheops   (21.03.2012 в 13:41)   письмо автору
 
   для: mister_pipin   (21.03.2012 в 02:40)
 

Если не сложно, посмотрите тему по ссылке http://softtime.ru/forum/read.php?id_forum=1&id_theme=85732. Да, MVC не паттерн для Web, его сюда принесли из десктопной среды, где модель - это структура файла, реже базы данных, контроллер - это вычисления программой, а вид - это отображение на мониторе или принтере. Там это модель очень популярна, так как вычислений много. В Web она не всегда оправдана, у вас контроллер должен оставаться пустым большую часть времени, а задачи "вида" лучше перенести в класс вида. И вообще лучше использовать приемы, которые будут облегчать вам создание архитектуры, а не запутывать еще больше. Можно, конечно, методом грубой силы затолкать любую задачу в любой паттерн... вопрос только, что вы приобретаете в замен, какую выгоду?

  Ответить  
 
 автор: mister_pipin   (27.03.2012 в 02:44)   письмо автору
 
   для: cheops   (21.03.2012 в 13:41)
 

Вот как пример, давайте рассмотрим портал, в котором на главной странице находится превью всего что есть на сайте(погода, валюта, афиша и тд).
Было бы ведь целесообразно использовать mvc. К примеру у нас будет папка "модули" в которой будут храниться все модули используемые на сайте. Если это погода, в папке "модули" будет находится еще одна папка с название данного модуля(пусть это будет погода), в котором будет контроллер, модель и вид.
Если же на сайте таких модулей много, возможно проектирование сразу нескольким программистам не мешая друг другу. А это есть хороший плюс как я понимаю.
С данного примера стоит ли использовать mvc? Как вы считаете?

  Ответить  
 
 автор: cheops   (27.03.2012 в 22:03)   письмо автору
 
   для: mister_pipin   (27.03.2012 в 02:44)
 

Это можно делать и без MVC и с MVC. Да вы просто возьмите и попробуйте, тогда сами увидите сильные и слабые стороны.

  Ответить  
 
 автор: SerG7   (22.03.2012 в 01:36)   письмо автору
 
   для: mister_pipin   (21.03.2012 в 02:40)
 

и чего вы упёрлись в эту хрень она вроде бы и логична...но формирует ужасные виды ссылок...даже с помощью .htaccess не преобразуете под ЧПУ...

  Ответить  
 
 автор: mister_pipin   (27.03.2012 в 02:50)   письмо автору
 
   для: SerG7   (22.03.2012 в 01:36)
 

Я что то думал что возможно использовать ЧПУ. Где то даже видел готовый скрипт

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования