Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что такое MVC? До конца не могу разобраться. 
:(
    Опции темы
zammar
Дата 22.1.2012, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Код

Model-view-controller (MVC, «Модель-представление-поведение», «Модель-представление-контроллер») — схема использования нескольких шаблонов
 проектирования, с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три
 отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные.


т.е. MVC состоит из трех частей, как я понял:

Модель
представление
поведение

Так вот вопрос в том, что из себя представляет каждый из элементов?
На данный момент я это понимаю так:

Модель - это данные. лежащие в базе в файловой структуре не важно.
представление - это грубо говоря css, html
поведение - это сам скрипт php


И еще, опишите пожалуйста на пальцах, какой-нибудь шаблон проектирования. Я никак не могу понять как с ними работать.



PM   Вверх
userseo
Дата 22.1.2012, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 8.1.2012

Репутация: нет
Всего: нет



смотри исходники:
http://sourceforge.net/projects/mvc-lt/?source=directory

быстрее поймешь.
PM MAIL   Вверх
MuToGeN
Дата 23.1.2012, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



Есть несколько парадигм, скрывающихся за этими тремя буквами.
К примеру, порой можно обходиться вообще без моделей, если проект достаточно прост для этого (философия CodeIgniter).

А в развернутом виде:
1. Модель - это доступ к данным и доменная логика. Не суть важно, откуда модель их берет - из mysql или postgres или mssql или d3 или файловой системы.
2. Представление - это то, что отвечает за визуализацию. И, соответственно, за логику визуализации.
3. Контроллер - связь между 1 и 2. При этом модель и представление могут порой спокойно общаться между собой без контроллера.
4. Сервисы - это как раз то, где должна лежать основная часть бизнес-логики.
Это философия Zend Framework.

Еще советую погуглить на тему FSUC. Но при этом иметь ввиду, что это не более чем мнение одного из разработчиков ZF.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
krundetz
Дата 24.1.2012, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Цитата(zammar @  22.1.2012,  18:49 Найти цитируемый пост)
Модель - это данные. лежащие в базе в файловой структуре не важно.

Не совсем, модель это прослойка например в виде класса, через которую с данными работают
Цитата(zammar @  22.1.2012,  18:49 Найти цитируемый пост)
представление - это грубо говоря css, html

очень уж грубо, это структура выходных данных, структурированная строка, структурированная так как надо
Цитата(zammar @  22.1.2012,  18:49 Найти цитируемый пост)
поведение

это какие данные как рабтать с моделью и как ее представлять
Цитата(zammar @  22.1.2012,  18:49 Найти цитируемый пост)
это сам скрипт php

скрипт это все в совокупности

Это сообщение отредактировал(а) krundetz - 24.1.2012, 12:31


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
zammar
Дата 27.1.2012, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Спасибо за ответы, ребята. Только у меня вопрос остался с представлением.

т.е. если я напишу метод класса который будет выводить подключение к стилям и html код, то этот метод можно назвать представлением?

Код

function method ()
{
    echo '         <html>
           <head>

                  <link href="...">
                  <script src="...">
         </head>
         </html>';
}


И еще последний вопрос: а сами данные, стили и html вообще какое нибудь отношение имеют к MVC?
PM   Вверх
krundetz
Дата 28.1.2012, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Цитата(zammar @  27.1.2012,  19:35 Найти цитируемый пост)
т.е. если я напишу метод класса который будет выводить подключение к стилям и html код, то этот метод можно назвать представлением?

нельзя
Цитата(zammar @  27.1.2012,  19:35 Найти цитируемый пост)
а сами данные, стили и html вообще какое нибудь отношение имеют к MVC? 

данные да, html и css нет


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
zammar
Дата 1.2.2012, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



krundetz, все-таки я не понимаю, что именно тогда представление? Можно на примере?
Вы говорили:
Цитата

очень уж грубо, это структура выходных данных, структурированная строка, структурированная так как надо


Но мой метод тоже выводит структурированную стоку так как надо, разве нет?
Код

function method ()
{
    echo '         <html>
           <head>
                  <link href="...">
                  <script src="...">
         </head>
         </html>';
}

PM   Вверх
Absinthe
Дата 1.2.2012, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 1
Всего: 11



Практически вся логика, связанная с объектами системы, должна быть в модели.

Цитата

все-таки я не понимаю, что именно тогда представление? Можно на примере?
 Шаблон, в который передаются данные из контроллера.
PM MAIL   Вверх
krundetz
Дата 2.2.2012, 09:33 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Цитата(zammar @  1.2.2012,  22:25 Найти цитируемый пост)
Но мой метод тоже выводит структурированную стоку так как надо, разве нет?

Метод не является представлением, он его может собрать из данных или отдать, но сам он не будет представлением.

Вот небольшой и даже примитивный пример.

Модель:
Код

class User {
    private $name;
    private $ID;
    public function __construct($ID, $name) {
        $this->name = $name;
    }
    public function getName() {
        return $this->name;
    }
    public static function findByIDFromDB($ID) {
        /* Пропущен код ищущий пользователя по идентификатору в БД */
        return new User($ID, $name);
    }
}

Представление:
Код

<html>
    <body>
        <p><?php echo $user->getName(); ?></p>
    </body>
</html>

Контроллер:
Код

include 'User.php';
$user = User::findByIDFromDB(1);
include 'View.php';

P.S. Я специально привел пример всего с одним классом, так как понятие MVC следует отделять от OOP.


Это сообщение отредактировал(а) krundetz - 2.2.2012, 09:36


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
zammar
Дата 3.2.2012, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Все ясно.
Конечно нужно будет закреплять практикой, но уже все понятно.
Спасибо!
PM   Вверх
Turos
Дата 22.2.2012, 18:34 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.2.2012
Где: Стамбул, Турция

Репутация: -1
Всего: -1



Посмотрите как работает любая CMS на MVC

-----------------------------
химические свойства магний

Это сообщение отредактировал(а) Turos - 5.1.2020, 17:38
PM MAIL WWW   Вверх
krundetz
Дата 22.2.2012, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Цитата(Turos @  22.2.2012,  18:34 Найти цитируемый пост)
Посмотрите как работает любая CMS на MVC 

Именно любая? Не верю.

Turos я уже не говорю о том, что в CMS особенно любой, без четкого представления что такое паттерны найти их проблематично.

Это сообщение отредактировал(а) krundetz - 22.2.2012, 19:43


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
SamDark
Дата 22.2.2012, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



Народ говорит, что мои заметки на эту тему помогают:

http://rmcreative.ru/blog/post/mvc-front-c...roller-i-router
http://rmcreative.ru/blog/post/mvc-view


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
krundetz
Дата 23.2.2012, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Цитата(SamDark @  22.2.2012,  23:23 Найти цитируемый пост)
Народ говорит, что мои заметки на эту тему помогают:

подпишусь под этими словами


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1827 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.