|
0 / 0 / 1
Регистрация: 06.03.2013
Сообщений: 6
|
|||||||||||||||||||||
Модель Page страницы06.03.2013, 14:46. Показов 2021. Ответов 9
Метки нет (Все метки)
Здравствуйте.
Берём простой случай. Требования к сайту: - динамическая генерация страниц - блок новостей То есть по идее должны быть две CRUD модели. Понятно, что редактирование, обновление и удаление доступно админу, чтение - всем пользователям. Вопросы в следующем: 1) как правильно организовать модели и контроллеры? 2) как взаимодействовать с базой? Все запросы будут отправляться файлу index.php, в нём создаваться экземпляр класса Route, в котором вызывается метод start
как правильно организовать модель и контроллер? как вытащить обращение к базе в отдельный класс?
0
|
|||||||||||||||||||||
| 06.03.2013, 14:46 | |
|
Ответы с готовыми решениями:
9
Чем определяется одинаковость урлов /page?FAQ и /page.php?FAQ Как сделать скролинг (или Page Up, Page Down) страницы Chrome ? Как запретить страницы page/2/? |
|
:)
134 / 134 / 31
Регистрация: 30.03.2013
Сообщений: 428
|
||||||
| 14.04.2013, 19:41 | ||||||
|
Не по теме: Пример взят с хабра) Хотя ошибки и недочеты там есть :) Вот пример структуры:
includes/languages - директория с различными языками includes/languages/templates - директория с шаблонами includes/languages/templates/defaulttmpl - 1-й шаблон по умолчанию (разделяется на шапку, содержание и нижний колонтитул, всё это подключается представлением (представлениями)) ![]() includes/languages/templates/db.mysql.php - конфиг БД MySQL (например, логин, пароль, БД и т.п.) ![]() components - составные части приложения, например, главная страница (index) и блок новостей (news), которые в свою очередь содержат свое предстваление, свой контроллер, свою модель. core - ядро системы Base_Controller.php, Base_View.php, Base_Model.php... здесь, думаю, пояснений не нужно ![]() core/Loader.php - загрузчик компонентов ядра (также можно назвать и bootstrap - начальная загрузка) core/config.php - файл конфигурации самого приложения и его модулей ![]() Вот я привел пример структуры, которым сам пользуюсь Посмотрите MVC-движки и фреймворки, посмотрите, как они устроены![]() И вообще, многие чудики представление заполняют html-кодом... Так вот, представление отвечает за вывод информации, и там есть свои методы для отображения Поэтому рекомендую задуматься)))P.S. Писать нужно на свой вкус и чувствовать это
0
|
||||||
|
:)
134 / 134 / 31
Регистрация: 30.03.2013
Сообщений: 428
|
|
| 14.04.2013, 19:43 | |
|
Подробная схема MVC
![]() P.S. Диспетчер - это ядро))
0
|
|
|
:)
134 / 134 / 31
Регистрация: 30.03.2013
Сообщений: 428
|
|
| 14.04.2013, 19:53 | |
|
Забыл еще дописать: Router - маршрутизатор (выбирает маршрут м/у компонентами и модулями)
Кстати, я говорил, что взятый тобою пример с хабра имеет недочеты и ошибки, так вот, введи такой адрес: [you-site].ru/main/index - отобразится главная страница; а вот так: [you-site].ru/main/index/бла/бла/крутяк/приколчэг/бугага ... и продолжаем до бесконечности... - всё равно отобразится главная страница.. Вот первый недочет)
0
|
|
|
28 / 50 / 2
Регистрация: 10.01.2012
Сообщений: 347
|
|
| 15.04.2013, 09:28 | |
|
в схемке подразумевается, что шаблон может вызвать другой контроллер? например для отображения меню или тулбара...
0
|
|
|
:)
134 / 134 / 31
Регистрация: 30.03.2013
Сообщений: 428
|
|
| 15.04.2013, 11:27 | |
|
Нет. Представление запрашивает шаблон, а контроллер запрашивает представление.
0
|
|
|
28 / 50 / 2
Регистрация: 10.01.2012
Сообщений: 347
|
||||||
| 15.04.2013, 11:52 | ||||||
|
вот рекомендую предусмотреть
) например в симфони это делается так:http://symfony.com/doc/master/... ontrollers
Добавлено через 14 минут и еще вопрос, вот контроллер вернул данные от шаблона обратно в "диспетчер", что именно будет делать диспетчер с ними? и в каком виде предполагается данные придут в него?
0
|
||||||
|
:)
134 / 134 / 31
Регистрация: 30.03.2013
Сообщений: 428
|
|
| 15.04.2013, 15:02 | |
|
Я делаю не так, как на картинке
) Контроллер сразу передает данные юзеру от представления) Ошибкой это не будет)
0
|
|
|
28 / 50 / 2
Регистрация: 10.01.2012
Сообщений: 347
|
|
| 15.04.2013, 15:22 | |
|
а как же пост обработка ответа от контроллера перед отправкой клиенту?
) например если захочется сжать ответ гзипом?
0
|
|
|
:)
134 / 134 / 31
Регистрация: 30.03.2013
Сообщений: 428
|
|
| 16.04.2013, 12:07 | |
|
Юзер запрашивает страницу --> контроллер обрабатывает запрос и передает соответствующие данные модели и представлению --> контроллер забирает полученные результаты от модели и представления --> контроллер отправляет результаты юзеру.
Контроллер не передает POST-запросы, а вызывает соответствующие методы.
0
|
|
| 16.04.2013, 12:07 | |
|
Помогаю со студенческими работами здесь
10
Создание посадочной страницы (Landing Page)
Маршрутизация для мастер страницы (routing for master page) Google speed page после оптимизации не пропускает внутренние страницы Сделать привязку button к кнопке 'Page Down' или 'Page Up' на клавиатуре Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|