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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подкиньте примерчик кода MVC, На http://www.google.com/codesearch 
:(
    Опции темы
nIkTo
Дата 29.11.2010, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Разбираюсь с MVC в PHP, перечитал много статей, но толково рабочего кода не нашёл, может из за того что не до конца понял структуру MVC. Прошу линк на код MVC не большого проекта. Google Code Search

Это сообщение отредактировал(а) nIkTo - 29.11.2010, 12:14
PM   Вверх
Guedda
Дата 29.11.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

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



Возьми любой фреймворк (Zend, Kohana), и посмотри, как там все реализовано.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Warpkid
Дата 29.11.2010, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не знаю конечно, это ли тебе надо, но:
http://www.phpro.org/tutorials/Model-View-...roller-MVC.html 
Внизу есть линк на исходники

Добавлено через 1 минуту и 44 секунды
Цитата

Возьми любой фреймворк (Zend, Kohana), и посмотри, как там все реализовано. 


оО 
Пардон, но брать Zend и пробовать разобраться в нем, как и что там реализовано - это садомазохизм.
PM MAIL   Вверх
SamDark
Дата 29.11.2010, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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





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


Бывалый
*


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

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



WarpkidSamDark, спасибо за ссылки посмотрел, примерно такие статьи и посты я и читал, кстати http://www.phpro.org/tutorials/Model-View-...roller-MVC.html есть рерайт на русском http://habrahabr.ru/blogs/php/31270/.
Хотелось бы полноценного примера, с аутентификацией, сессиями, работой с БД, но и лезть в сложные фреймворки думаю пока нет смысла, так как в таких дебрях я точно заблужусь.
PM   Вверх
nIkTo
Дата 4.12.2010, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так и не нашёл нормального примера аутентификации в MVC =(
Может кто ссылку на код дать ?
PM   Вверх
Muerto
Дата 4.12.2010, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



nIkTo, на YII глянь, у них базовый пример эт блог


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


Бывалый
*


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

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



Muerto, очень много кода, скил пока не тот у меня. Нужно что-то проще.
PM   Вверх
Muerto
Дата 4.12.2010, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



делаешь контроллер авторизация, далее добавляешь разные действия, как восстановление пароля, вход, страница не верного пароля...
Если понятна основа то в чем проблема?

/auth/login
/auth/recpass
/auth/fail/err/4

и тп.


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


Бывалый
*


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

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



Создаю такую структуру:
/login
/logout
/page1
/page2
/page3

для того чтобы смотреть page1, page2, page3 необходима авторизация.
Так вот вопрос где проверять прошёл ли пользователь аутентификацию ?

то есть заходит пользователь на /page2 роутер вызывает контроллер page2 с дефолтным действием index, а вот где проверить надо ли вызывать котроллер или делать редирект на /login ....

в общем как говорится лучше один раз увидеть чем ...
PM   Вверх
Muerto
Дата 4.12.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



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

А так просто проверяешь сессию где угодно... в контроллере твоей страницы к примеру...


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


Бывалый
*


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

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



Muerto, тоесть, если пользователь запрашивает /page1 то код:

1. Стартует сессию
2. Обрабатывает url и вызывает контроллер page1
3. В конструкторе контроллера проверяем есть ли $_SESSION['password'] и $_SESSION['username'] если нет то пишем header('Location: /login');

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


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


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

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



Стартовать сессию надо вообще всегда. Остальное так же.


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


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(SamDark @  4.12.2010,  15:11 Найти цитируемый пост)
Стартовать сессию надо вообще всегда

не всегда, а только когда есть кука или параметр с именем session_name(). Ну или когда действительно нужно стартовать сессию - при авторизации, например.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nIkTo
Дата 4.12.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



 smile  smile  smile  smile  smile  smile 
PM   Вверх
S.A.P.
Дата 4.12.2010, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(nIkTo @ 4.12.2010,  13:41)
Создаю такую структуру:
/login
/logout
/page1
/page2
/page3

для того чтобы смотреть page1, page2, page3 необходима авторизация.
Так вот вопрос где проверять прошёл ли пользователь аутентификацию ?

то есть заходит пользователь на /page2 роутер вызывает контроллер page2 с дефолтным действием index, а вот где проверить надо ли вызывать котроллер или делать редирект на /login ....

в общем как говорится лучше один раз увидеть чем ...

Зависит от того, к чему тебе нужно ограничить доступ. К конкретному адресу или контроллеру который к нему прикручен, а может исходя из каких - то внутренних правил, специфичных для контроллера. В первом случае пользователя можно обломать на этапе роутинга, в остальных - проверку можно производить и в контроллере. 
Ежели ты ломаешь голову над тем как хранить и обрабатывать структуру прав - покопай в сторону ACL
PM MAIL   Вверх
SamDark
Дата 5.12.2010, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Или RBAC.


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


Бывалый
*


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

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



Нужна просто аутентификация ни каких ролей или разграничения прав среди аутентифицированных нету.
PM   Вверх
Muerto
Дата 5.12.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Ну можно так сделать:

Код

$rights=array('secure','private','comment');

if(in_array(current_page,$rights) && !isset($_SESSION['auth'])){
//do some redirecting....
}else{
      //call controller
}



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

Это ты в свой раутер запихать можешь...

За святое брать не стоит ибо на скорую руку накидал  smile 


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


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



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

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



Цитата(ksnk @  4.12.2010,  15:38 Найти цитируемый пост)
стартовать сессию нужно всегда

не всегда, а только когда есть кука или параметр с именем session_name()

почему только когда есть кука или параметр с именем session_name()?
я вот смотрю, параметр с именем session_name() есть всегда
PM MAIL WWW   Вверх
ksnk
Дата 7.12.2010, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(bars80080 @  7.12.2010,  17:40 Найти цитируемый пост)
почему только когда есть кука или параметр с именем session_name()?
я вот смотрю, параметр с именем session_name() есть всегда 


Код

if(isset($_GET[session_name()]) or isset($_COOKIE[session_name()])) {
   start_session();
}

что-то вроде такого...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1069 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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