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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> собираем страницу 
:(
    Опции темы
HackMan
Дата 22.7.2008, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



Цитата(Feldmarschall @  22.7.2008,  21:21 Найти цитируемый пост)
выше ты написал только, что универсального, единственно-правильного решения не существует.

Прочти ещё чуть выше, некоторые примеры я дал  smile 


Цитата(Feldmarschall @  22.7.2008,  21:21 Найти цитируемый пост)
вот, допустим, у меня был сайт из 4 скриптов - index.php, shop.php, guestbook.php, news.php
как его переделать под MVC?

Что-то далеко уходим от главной темы. Это понимать как проверку моих знаний?  smile 

Навскидку я бы сделал примерно так:
  • http://somehost.com/ - главная страница
  • http://somehost.com/shop - магазин
  • http://somehost.com/guestbook - гостевуха
  • http://somehost.com/news - новости
Иерархия проекта следующая:

Код

public_html
» classes
  » router.php - роутер, парсит URL и выбирает соответствующий контроллер
  » template.php - шаблонизатор, задача которого заносить в шаблон значения переменных и отображать сам шаблон
  » registry.php - реестр, нужен во избежание использования глобальных переменных
  » controller_base.php - базовый класс контроллера
  » model_base.php - базовый класс модели


» includes - сторонние библиотеки
  » dbsimple - для работы с СУБД
  » lightbox - для красивого отображения картинок
  » tinymce - текстовый редактор


» controllers
  » shop
    » index.php - контроллер для http://somehost.com/shop
    » detais.php - контроллер для подробного детального просмотра товара
    » edit.php - контроллер для редактирования товара

  » guestbook
    » index.php - контроллер для http://somehost.com/guestbook
    » profile.php - контроллер профиля

  » news
    » index.php - контроллер для http://somehost.com/news
    » news.php - контроллер новостей
    » comments.php - контроллер комментариев
    » edit.php - контроллер редактирования новости


» templates
  » shop
    » index.php - шаблон для http://somehost.com/shop
    » detais.php - шаблон для подробного детального просмотра товара
    » edit.php - шаблон для редактирования товара

  » guestbook
    » index.php - шаблон для http://somehost.com/guestbook
    » profile.php - шаблон профиля

  » news
    » index.php - шаблон для http://somehost.com/news
    » news.php - шаблон новостей
    » comments.php - шаблон комментариев
    » edit.php - шаблон редактирования новости

  » index.php - шаблон для http://somehost.com/
  » header.php - шапка
  » footer.php - подвал


» models - функции для разных рассчётов и "общения" с СУБД
  » shop.php
  » guestbook.php
  » news.php


» index.php - точка входа
» config.php - конфиг
» .htacces - настройки сервера, в т.ч. mod_rewrite


Это сообщение отредактировал(а) HackMan - 22.7.2008, 21:50


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Fortop
Дата 22.7.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Цитата(Feldmarschall @  22.7.2008,  21:26 Найти цитируемый пост)
Я правильно понял?

Нет, это будет оливье smile


Цитата(Feldmarschall @  22.7.2008,  21:26 Найти цитируемый пост)
если model у меня - это структура каталога - 

Не совсем верно.
Модель - это сущность. Объект которым ты оперируешь.
Например в гостевой используются две модели User и Message.
Задача модели сделать прозрачным работу с источниками данных. Т.е. тебе не нужно беспокоится что и откуда берется - ты это берешь у модели.


Цитата(Feldmarschall @  22.7.2008,  21:26 Найти цитируемый пост)
допустиим, общая авторизация в шопе и в гостевой. Этого достаточно?
А можно попросить пример сайта с достаточными связями для мвц? 

Честно? не очень smile

А вот если добавить вывод контекстных новостей всюду. Общий один на всех контроллер для экспорта информации в PDF, CSV, XML и т.д.
Сверху навесить требование работы этого всего на ПК, КПК и к примеру touchpad.
Да скажем с 2-3мя типами принтеров (тоже общий для всех).

Вот тогда вопрос правильного структурирования кода может встать.



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
HackMan
Дата 22.7.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



Цитата(Feldmarschall @  22.7.2008,  21:26 Найти цитируемый пост)
используемый ими Смарти, то у меня тоже MVC

опять ты цепляешь к смарти...


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Feldmarschall
Дата 22.7.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



HackMan
Ну, не столько знаний, сколько осмысленности подхода.
Но в первую очередь - я хочу для себя понять.
То есть, вся разница с обычным подходом заключается в том, что мы все вызываем через один индекс, и делим гостевую на два файла.
Так?

Смарти я не цепляю. Я привожу в пример. Ведь его можно использовать, как шаблонизатор? Если у тебя есть личная неприязнь к смарти, я готов заменить на XSLT.

Добавлено через 3 минуты и 43 секунды
Fortop
Цитата(Fortop @  22.7.2008,  21:52 Найти цитируемый пост)
. Общий один на всех контроллер для экспорта информации в PDF

ты хотел сказать - общий вью?


Это сообщение отредактировал(а) Feldmarschall - 22.7.2008, 21:56
PM   Вверх
HackMan
Дата 22.7.2008, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



Feldmarschall, процитирую Википедию

Цитата

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


Ключевые слова - модификация одного из компонентов оказывает минимальное воздействие на другие компоненты
Модель MVC позволяет раздробить целое на несколько логически независимых частей.


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Fortop
Дата 22.7.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Цитата(Feldmarschall @  22.7.2008,  21:53 Найти цитируемый пост)
То есть, вся разница с обычным подходом заключается в том, что мы все вызываем через один индекс, и делим гостевую на два файла.
Так? 

Мы вообще все делим как можно мельче и приводим к иерархиям.



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
HackMan
Дата 22.7.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



А так же решает вопрос bars80080  smile 


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Fortop
Дата 22.7.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Цитата(Feldmarschall @  22.7.2008,  21:53 Найти цитируемый пост)
ты хотел сказать - общий вью?

View как раз разные для каждого формата, но общие для любой части сайта.
Т.е. экспорт новостей и гостевой в PDF использует одну view, для XML - другую.

Но оглядываясь на то что уже сделано, я бы вообще функции экспорта вынес отдельно.

Единственное что пока не решил, как это организовать.
Пока исходя из архитектуры - лучше отдельным контролером. Слишком часто повторяющаяся операция у меня.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
HackMan
Дата 22.7.2008, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



Цитата(Feldmarschall @  22.7.2008,  21:53 Найти цитируемый пост)
Смарти я не цепляю. Я привожу в пример. Ведь его можно использовать, как шаблонизатор?

использовать можно, но не нужно  smile 


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Feldmarschall
Дата 22.7.2008, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Fortop, то есть, главное в MVC - не общий индекс (о котором так много писал HackMan), а объектная модель (не в смысле model, а в смысле модель построения сайта с использованием ООП)? 
А роль общего индекса вполне может играть умный рерайт с препендом на пару, правильно?

Цитата(HackMan @  22.7.2008,  21:59 Найти цитируемый пост)
А так же решает вопрос bars80080

Вот только вопрос, сколько ему это будет стоить.

Это сообщение отредактировал(а) Feldmarschall - 22.7.2008, 22:10
PM   Вверх
Fortop
Дата 22.7.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Цитата(Feldmarschall @  22.7.2008,  22:08 Найти цитируемый пост)
Fortop, то есть, главное в MVC - не общий индекс (о котором так много писал HackMan), а объектная модель (не в смысле model, а в смысле модель построения сайта с использованием ООП)? 
А роль общего индекса вполне может играть умный рерайт с препендом на пару, правильно?

да


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
HackMan
Дата 22.7.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



Цитата(Feldmarschall @  22.7.2008,  22:08 Найти цитируемый пост)
то есть, главное в MVC - не общий индекс (о котором так много писал HackMan)

Я ни разу не утверждал, что общий индекс - главное в MVC. Это фраза, выдранная из контекста. Главную задачу MVC я процитировал с Вики

Цитата(Feldmarschall @  22.7.2008,  22:08 Найти цитируемый пост)
А роль общего индекса вполне может играть умный рерайт с препендом на пару, правильно?

да  smile 

Это сообщение отредактировал(а) HackMan - 22.7.2008, 22:16


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Fortop
Дата 22.7.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Дело в том, что сама архитектура веб прямо таки способствует разделению логики.
Model - база данных
View - html, javascript etc...
Controller - PHP.

Я недавно пытался объяснить это обычным десктопщикам - но для них это что-то заоблачное.
они не понимают как могут кнопки и форма жить отдельно от всего остального приложения smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
HackMan
Дата 22.7.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



Fortop, в модели не обязательно только работа с СУБД

И для окончательной понятности ещё одна цитата с Вики
Цитата

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


Это сообщение отредактировал(а) HackMan - 22.7.2008, 22:19


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
bars80080
Дата 22.7.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



ему это будет стоить много отрицательных рублёв, ибо он на этом ещё заработает
не продажей, так работой

фигасе я холивар развёл

спасибо большое за обсуждение
Feldmarschall, ты так и не рассказал, что считаешь правильным

словами умными бросаться не люблю, ибо понты. главное, чтоб работало как часы

я пока примерно так думаю (иллюстрация HackMan)
объединять я ничего не хочу, именно поэтому клепаю независимые модули. скорее всего это будет разрозненные папки с файлами модуля. единственное, что все их конфиги будут цепляться за главный в корневике. в таком случае переложение на другую задачу будет довольно быстрое
точки входа тоже будут разные. скажем index.php для общего сайта (новости, инфо для клиентов, формы заказа и т.п.), система управления и редакции (admin.php) для наполнения контентом и общим управлением, ну и другие обособленные от остального блоки, типа forum, shop и т.п.
на всё общая БД с общими таблицами на авторизацию и доступ, но в остальном разные.

что не так сказал?
PM MAIL WWW   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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