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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ЧПУ в MVC, какой подход лучше? 
:(
    Опции темы
Kotakota
  Дата 26.2.2011, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет, хочу написать свой фреймворк.
Возник вопрос по поводу ЧПУ.
Возьмем к примеру, такой УРЛ: http://somesite.com/2011/01/01/news/archive
Вывести архив новостей за 2011.01.01

Какой подход лучше использовать:
1. Роутер.
Разбиваем УРЛ и смотрим, что подключать.
2. Использовать переменные типа:
http://somesite.com/index.php?y=2011&m...rectory=archive
А потом с помощью mod_rewrite приводить это к http://somesite.com/2011/01/01/news/archive

И еще вопрос при использовании первого метода, как лучше выделить контроллер, действие?

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


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


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

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



Роутер — более гибкое решение.

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


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


Эксперт
***


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

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



SamDark Вы так пиарите Yii что соблазняет таки его заценить  smile 
Я как то пытался с ним подружиться, но за место облегчения жизни , получил лишь осложнение  smile 

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

Так что даже не знаю, выйграю ли я если насильно себя заставлю работать с Yii


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


Шустрый
*


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

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



Будущее за cmf smile

Это сообщение отредактировал(а) Noviy - 27.2.2011, 18:08
PM MAIL ICQ   Вверх
SamDark
Дата 28.2.2011, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Muerto
Я не пиарю особо, я просто его разрабатываю smile Разговор не для этой темы, либо в новой, либо в личку. Тут оффтоп выходит.


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


Шустрый
*


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

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



Спасибо.
Еще пара вопросов по поводу MVC и роутера.

1. В некоторых просмотренных мной схемах MVC видел взаимодействия роутера с отображением (view).
Роутер передает разобранный URL в контроллер, контроллер выполняет определенное действие взаимодействуя с данными из модели
если это необходимо, а потом результат передается в отображение.
Зачем нужна связь роутера и отображения непонятно?

2. Как лучше получить поисковую строку браузера?
Через QUERY_STRING, $_SERVER или еще варианты?

3. Допустим разобранная строка находится в массиве arr[].
Планирую сделать так:
arr[0] - контроллер
arr[1] - метод
arr[2] и arr[2..N] - параметры

Правильно это будет или нет?

4. Не могу понять, зачем использовать mod_rewrite в .htaccess, там где мы берем URL, разбиваем его и подключаем то, что необходимо.
В этом есть какая либо необходимость?
Все ведь делается вручную.

Это сообщение отредактировал(а) Kotakota - 28.2.2011, 14:20
PM MAIL   Вверх
SamDark
Дата 28.2.2011, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



1.
Цитата

Роутер передает разобранный URL в контроллер, контроллер выполняет определенное действие взаимодействуя с данными из модели
если это необходимо, а потом результат передается в отображение.

Это нормальная схема работы MVC. Что имеется ввиду под взаимодействием роутера и отображения?

2. Вариантов много. С разными серверами всё по-разному. Смотреть стоит на: HTTP_X_REWRITE_URL, REQUEST_URI, HTTP_HOST, ORIG_PATH_INFO, QUERY_STRING.

Выглядеть это должно примерно как в http://www.yiiframework.com/doc/api/1.1/CH...questUri-detail (нажать show).

3. Смотря что потом делать с этим.
4. Он используется по минимуму для того, чтобы убрать из URL index.php.


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


Шустрый
*


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

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



1. http://www.youtube.com/watch?v=2EYzb3kjIDk
Объясняет принципы MVC в PHP
2. Спасибо, интересный фреймворк.
3. А что потом с этим обычно делают?
Передают контроллеру, разве нет? 
4. Понятно.
А чем плох "DirectoryIndex index.html" в конфигурации Апача или в .htaccess? 
PM MAIL   Вверх
SamDark
Дата 1.3.2011, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



3. Да, но передавать можно в разном виде. Вот от вида и зависит, что надо делать.
4. Не знаю smile


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


Шустрый
*


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

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



Цитата(SamDark @ 1.3.2011,  13:25)
3. Да, но передавать можно в разном виде. Вот от вида и зависит, что надо делать.

Что Вы имеет в виду, под разным видом?
PM MAIL   Вверх
SamDark
Дата 1.3.2011, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Ну, например, в контроллер они могу поступать так:

Код

function actionSave($id){
 …
}


или

Код

function actionSave(){
  $id = $_GET['id'];
}


или

Код

function actionSave(){
  $id = $this->request('id');
}


или

Код

function actionSave($params){
  $id = $params['id'];
}


Вариантов бесконечно много.


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


Шустрый
*


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

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



Вы наверное догадались, что дальше последует вопрос, а какой способ лучше?
И вы правы smile
Наверняка в Yii есть пример?
PM MAIL   Вверх
SamDark
Дата 1.3.2011, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



В Yii работают примерно в таком виде первые три способа.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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