Очень хочу занятся ООП, но непойму их принципов

b0bah

Новичок
Очень хочу занятся ООП, но непойму их принципов

Собственно сабж... Опишу проблему.
Допустим я разрабатываю портал, у меня есть класс пользователь.
В классе определен конструктор, и прочие методы (для смены пароля, для редактирование данных), также определены скрытые поля...

Теперь вопросы.

При авторизации пользователя я вызываю конструктор с его логином и паролем,
в конструкторе сверяются записи с БД, и возвращается ответ, если пользователь зарегистрирован, то создается сессия.

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

Подскажите как решить проблему. Если я непонятся написал, напишите выложу поподробнее.
 

Фанат

oncle terrible
Команда форума
Учиться использовать ООП в пхп - не очень благодарное занятие.
по хорошему - да, надо бы сделать класс юзер и на каждой странице его использовать.
только вот интерпретатор бедный будет постоянно парсить весь код, никак не относящийся к проверке валидности пользователя.

вопрос про "Как передавать сессию через объекты классов" вообще непонятен. Ты сам-то понял, что хотел сказать?
 

bkonst

.. хочется странного?...
Небольшое замечание не совсем по теме:

Вообще-то идея делать какие-то проверки в конструкторе - плохая. Конструктор предназначен для того, чтобы проинициализировать созданный объект - он НЕ возвращает значений, и разпознать ошибку в нем проблематично. Если хочется такое сделать - используй фабричный метод, который будет в случае ошибки возвращать что-либо понятное.
 

b0bah

Новичок
Автор оригинала: Фанат
Учиться использовать ООП в пхп - не очень благодарное занятие.
по хорошему - да, надо бы сделать класс юзер и на каждой странице его использовать.
только вот интерпретатор бедный будет постоянно парсить весь код, никак не относящийся к проверке валидности пользователя.

вопрос про "Как передавать сессию через объекты классов" вообще непонятен. Ты сам-то понял, что хотел сказать?
Ну т.е. допустим есть такие методы или свойства.

User::Login = $_GET['login'];
User::password = $_GET['password'];

Далее создается сессия.

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

Фанат

oncle terrible
Команда форума
то есть, ты хотел сказать наоборот - как через СЕССИЮ передавать СВОЙСТВА.
ну так весь объект, как тебе написал YRusinov можно положить в сессию.
просто написав $_SESSION['user']=$user_class;
"на следующей странице" пишешь $user_class=$_SESSION['user']; и получаешь свой класс в целости и сохранности.
Ты этого хотел?

и только после этого вполнять какие-то методы, например для смены пароля.
понадобятся тебе эти методы - раз в столетие.
а парсить их пхп будет при каждом обращении к скрипту.
вот я о чём.
Впрочем, это не так уж актуально, чтобы обращать на это внимание
 

b0bah

Новичок
$_SESSION['user']=$user_class;
Спасибо за ответ, вот что я хотел)
 
Сверху