Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (6) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> ООП. Философия авторизации
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 3 дня
Карма: 56




Фишка такая: если я правильно понял ооп с MVC - мы не работаем с супер глобальными массивами ($_POS, $_GET, etc.). Но при авторизации пользователя мне нужно задать $_SESSION['user_id']. Чтоб он идентифицировал авторизировавшегося пользователя. Теперь вопрос: корректно ли в классе будет установить эту переменную, или есть другой вариант?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 811
Пользователь №: 36058
На форуме: 4 года, 5 месяцев, 2 дня
Карма: 42




Цитата (Zzepish @ 22.04.2016 - 14:39)
не работаем с супер глобальными массивами

Почему?


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 3 дня
Карма: 56




S.Chushkin
все данные собираються в роутере (у меня), и передаються как отдельный массив дальше. А не юзаем, чтоб не было потом искажения данных
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 811
Пользователь №: 36058
На форуме: 4 года, 5 месяцев, 2 дня
Карма: 42




А, 100%-й ООП...
Ну так сделайте объект Session вместо встроенной возможности. В чём проблема то?


--------------------
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 811
Пользователь №: 36058
На форуме: 4 года, 5 месяцев, 2 дня
Карма: 42




>> А не юзаем, чтоб не было потом искажения данных

Вообще-то $_POST, $_GET и т.п. должны использоваться только на чтение, поэтому никаких "искажений" там не должно быть в принципе.


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2059
Пользователь №: 36605
На форуме: 4 года, 3 месяца, 13 дней
Карма: 113




Ну в ооп плане у тебя есть некая допусти

class UserAuth {
public function __construct(ISessionStorage $storage){}

}


interface ISessionStorage {
public function set($key, $value);
public function get($key);
public function has($key);
public function remove($key);
}


а с чем работает класс имплементирующий ISessionStorage уже не важно) бд + куки или $_SESSION и тд)

внутри UserAuth ты обращаешься уже к методам хранилища)) а с чем он работает уже не важно))) с $_SESSION или вообще в бд хранит или в файле или в редисе)


Цитата
Вообще-то $_POST, $_GET и т.п. должны использоваться только на чтение, поэтому никаких "искажений" там не должно быть в принципе.


Должны, но не обязаны, так как лучше закрыть оберткой чем потом от другого программиста получить подарок


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 3 дня
Карма: 56




S.Chushkin
Ну да biggrin.gif Я ж хочу познать саму идеологию)
Ага. Т.е. Объект SESSION может на прямую работать с супер глобальной переменной SESSION? И это будет корректно с точки зрения идеологии?)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1910
Пользователь №: 38654
На форуме: 3 года, 4 месяца, 26 дней
Карма: 43




Цитата (S.Chushkin @ 22.04.2016 - 14:57)
Ну так сделайте объект Session вместо встроенной возможности. В чём проблема то?

+1


--------------------
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 3 дня
Карма: 56




S.Chushkin
мало ли! кто-то напишет модуль, или покапаеться в коде, запилит в чужом модуле искажение какое-нить . А так - идет защита от такого)
bestxp
ага! спасибо)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 811
Пользователь №: 36058
На форуме: 4 года, 5 месяцев, 2 дня
Карма: 42




>> Теперь вопрос: корректно ли в классе будет установить эту переменную, или есть другой вариант?

Если "только ООП", то - нет.
Можно сделать оболочку над модулем сессий. Тут bestxp правильно сказал - что там внутри, по барабану. Извне это Объект.
Но в то же время, в ПХП нет 100% ООП, поэтому я бы допустил использование $_SESSION, если у Вас нет цели "100%-й ООП".


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 811
Пользователь №: 36058
На форуме: 4 года, 5 месяцев, 2 дня
Карма: 42




Цитата (Zzepish @ 22.04.2016 - 15:05)
А так - идет защита от такого)

В ПХП нет "защиты от такого" - можно изменить всё что хочется sad.gif
Защита только одна, - большой толстой линейкой по рукам.


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2368
Пользователь №: 27172
На форуме: 6 лет, 1 месяц, 27 дней
Карма: 76




Zzepish
Цитата
все данные собираються в роутере (у меня), и передаються как отдельный массив дальше.

Можно поинтересоваться какие данные входят в этот массив, в каком виде он приходит в приложение?


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 3 дня
Карма: 56




S.Chushkin
Цитата
Если "только ООП", то - нет.
Можно сделать оболочку над модулем сессий. Тут bestxp правильно сказал - что там внутри, по барабану. Извне это Объект.
Но в то же время, в ПХП нет 100% ООП, поэтому я бы допустил использование $_SESSION, если у Вас нет цели "100%-й ООП".

тут вопрос идеологии :D я ж сейчас учусь, фактичеки. Хочу научиться писать правильно.
Насколько я понял - самый близкий идеологии ООП будет вариант с созданием Класса, для редактирования сессии.

Цитата
В ПХП нет "защиты от такого" - можно изменить всё что хочется
Защита только одна, - большой толстой линейкой по рукам.

Увы! Это так(

Arh

$router = new MainRouter($_POST, $_GET, $_SESSION, $_COOKIE, $_SERVER, $_FILES);




public function __construct($POST, $GET, $SESSION, $COOKIE, $SERVER, $FILES)
{
$this->inputData = compact('POST', 'GET', 'SESSION', 'COOKIE', 'SERVER', 'FILES');

$this->inputData['params'] = $routerData = $this->getRouterData($this->inputData['GET']);

Везде они фигурируют как $inputData
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 811
Пользователь №: 36058
На форуме: 4 года, 5 месяцев, 2 дня
Карма: 42




Цитата (Zzepish @ 22.04.2016 - 15:20)
Насколько я понял - самый близкий идеологии ООП будет вариант с созданием Класса, для редактирования сессии.

Правильно будет - объект "Сессия" со своими свойствами и методами. А уж что он делает, дело десятое. В частности, может изменять параметры сессии.
Класс это просто декларация/описание объекта.


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 5 месяцев, 25 дней
Карма: 10




Цитата (Zzepish @ 22.04.2016 - 15:14)
тут вопрос идеологии biggrin.gif я ж сейчас учусь, фактичеки. Хочу научиться писать правильно.

нету четких идеологий, по крайней мере мне не известны они. Есть логические понятные решения разных ситуаций, а есть запутанные, по логике, по логике вот само верно выглядит:
Цитата (S.Chushkin @ 22.04.2016 - 15:53)
Правильно будет - объект "Сессия" со своими свойствами и методами. А уж что он делает, дело десятое. В частности, может изменять параметры сессии.

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

Это сообщение отредактировал casper - gg - 22.04.2016 - 16:06
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

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

Опции темыСтраницы: (6) [1] 2 3 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса