ФорумПрограммированиеPHP для идиотовPHP и ООП → непонятки с ООП

непонятки с ООП

  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 6 февраля 2010 г. 1:33, спустя 11 минут 7 секунд

    kamachi, я это представляю примеро так (но уровень у меня такой же как у тебя в ооп)
    Ты обращаешься к объекту авторизация класса юзер.
    Тот в свою очередь должен проверить есть ли такой пользователь в базе, потом такой ли у него пароль, потому если все верно, записать паблик (?) массив, записать данные в сессию и куки.
    Для этого еще создаешь еще несколько объектов.
    1) Проверка логина.
    2) Проверка пароля.
    3) Запись массива
    4) Запись сессии
    5) Запись куки.

    Теперь что делают они:
    1) Обращается к классу базы данных с просьбой узнать есть ли такой юзер. Если есть то забираем его логин и пароль. При чем пароль записываем в приват (?) функцию.
    2) Сравниваем хеш пришедшего пароля и тот что в базе. Для этого обратимся к еще одному объекту класса юзер. Он шифрует нам пароль.
    3) Получаем данные пользователя. Для этого обращаемся к классу базы. И забираем данные.
    4) Записываем в массив.
    5) В сессию
    6) В куки

    Наш класс авторизация будет работать примерно так.
    Получаем переменные с логином и паролем.
    Обращаемся к объекту один.
    Если объект 1 не вернл фальш, то обращаемся к объекту 2.
    Если и тот не вернул фальш. То обращаемся к объекту 3. Потом обращаемся к 4,5 и 6.

    Вот как то так, как мне кажется.

  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2010 г. 11:15, спустя 9 часов 41 минуту 55 секунд



    я вот тут пытаюсь до сих пор догнать ооп


    мне сложно эти веши понять, я еще начинаюший.

    ну ты пробуй потихоньку, тебя никто не гонит…
    и повторю, изучать синтаксис ООП это не значит изучать ООП.
    ты пока не поймешь в чем кагбэ вся соль, то ничего толкового не выйдет…

    попробуй просто помыслить обьектным подходом..
    к примеру:
    пришел ты покупать в магазин хлеб, ты - обьект человек, подходишь к продавцу который тоже является обьектом и говоришь ему: "дай мне блять хлеба".
    и вот тут вся соль, тебя как покупателя не должно ебать как этот хлеб производится, как и когда доставляется….
    от обьекта "продавец" ты должен получить только хлеб и все.
    Спустя 47 сек.
    подобные примеры окружают нас каждый день, они всегда вокруг нас, просто попытайся увидеть все это в таком свете.


    krasun, ложки не существует, вспомнилось блин. (я про http://pyha.ru/forum/topic/3911.msg81251#msg81251 и http://pyha.ru/forum/topic/3911.msg81258#msg81258, но это не важно

    Вот меня одно заинтересовало, у меня за аутентификацию пользователя отвечает Zend_Auth, это же сторонний объект получается, который ничего не знает не о пользователе, не о БД(грубо говоря, он все равно общается через адаптер).

    Не могу увидеть, как человек или пользователь вызывает метод аутентификации сам у себя, в более не менее объектной системе.

    Хотя да, наверное, иногда отдельный объект отвечающий за аутентификацию будет излишен, если хочется системе не усложнять.
    Спустя 93 сек.
    *систему не усложнять
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2010 г. 11:20, спустя 5 минут 11 секунд

    блин, вопроса, так и не задал, восстановите удаление сообщений, а то случайно отправляю, а потом перечитываю и все. А хотя ладно не надо, перед отправкой буду перечитывать ))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 февраля 2010 г. 11:22, спустя 1 минуту 35 секунд


    блин, вопроса, так и не задал, восстановите удаление сообщений, а то случайно отправляю, а потом перечитываю и все. А хотя ладно не надо, перед отправкой буду перечитывать ))
    слово не воробей, вылетит - не поймаешь.

    а также
    получил хуй в лицо - не уворачивайся
    Сапожник без сапог
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2010 г. 11:35, спустя 13 минут 21 секунду

    та я последнее время в философия окунулся и меня сейчас в башке, вообще пиздец))

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

    Короче пиздец, не что не есть истина. Вот он возраст сказывается, 18 лет.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 6 февраля 2010 г. 11:43, спустя 7 минут 57 секунд

    Вопрос к тем кто шарит. В своем предыдущем сообщении (которое идет первым на этой странице) я хуйню написал?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 февраля 2010 г. 12:41, спустя 58 минут 25 секунд

    kamachi, я это представляю примеро так (но уровень у меня такой же как у тебя в ооп)
    Ты обращаешься к объекту авторизация класса юзер.
    Тот в свою очередь должен проверить есть ли такой пользователь в базе, потом такой ли у него пароль, потому если все верно, записать паблик (?) массив, записать данные в сессию и куки.


    я бы сказал что это верно и верно как у зенда. ты говоришь о "простой схеме", а зенд явно используют "списки доступа" (acl), тогда я бы использовал и правда "двери" (Zend_Auth), которая пользователя "пускает" в защищенную область и "вешает на него погоны", которые позволяют ему что-либо делать

    такая схема хороша для больших систем, твоя для простых где есть ТОЛЬКО АДМИНИСТРАТОР, нет всяких модераторов, редакторов и прочей хуйни. ну и когда доступ к модулям разграничивается как раз на уровне acl, а не на уровне ифов :D
    Сапожник без сапог
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 6 февраля 2010 г. 12:46, спустя 4 минуты 40 секунд

    phpdude,

    такая схема хороша для больших систем, твоя для простых где есть ТОЛЬКО АДМИНИСТРАТОР, нет всяких модераторов, редакторов и прочей хуйни. ну и когда доступ к модулям разграничивается как раз на уровне acl, а не на уровне ифов :D

    Я не знал, но теперь знаю. Когда буду ооп учить про acl почитаю.

    я бы сказал что это верно и верно как у зенда. ты говоришь о "простой схеме", а зенд явно используют "списки доступа" (acl), тогда я бы использовал и правда "двери" (Zend_Auth), которая пользователя "пускает" в защищенную область и "вешает на него погоны", которые позволяют ему что-либо делать

    Я обычно права в сессию отправляю :D
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 февраля 2010 г. 13:02, спустя 16 минут 1 секунду

    Я обычно права в сессию отправляю :D
    хоть на луну, по-хорошему тебе модуль должень говорить типа

    if(!Acl::CanIDoIt())
    Acl::PrintIAmLooser();

    Сапожник без сапог
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2010 г. 13:33, спустя 30 минут 46 секунд


    я бы сказал что это верно и верно как у зенда. ты говоришь о "простой схеме", а зенд явно используют "списки доступа" (acl), тогда я бы использовал и правда "двери" (Zend_Auth), которая пользователя "пускает" в защищенную область и "вешает на него погоны", которые позволяют ему что-либо делать

    такая схема хороша для больших систем, твоя для простых где есть ТОЛЬКО АДМИНИСТРАТОР, нет всяких модераторов, редакторов и прочей хуйни. ну и когда доступ к модулям разграничивается как раз на уровне acl, а не на уровне ифов :D


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

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 февраля 2010 г. 13:37, спустя 4 минуты 23 секунды

    В общем ты прав
    это я и сам знаю, иначе бы не писал тот пост :)
    Сапожник без сапог
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2010 г. 13:42, спустя 4 минуты 27 секунд

    Я это вижу на примере, государств. Более простые африканские государства, там много чего смешано и напутано, но они как-то живут и какие-то свои функции выполняют. Есть средние государства, мне кажутся такими странами Россия, Китай и так далее те у кого переходной этап, они пытаются как-то разграничивать права и обязанности, да много проблем, но они это пытаются решить, проблемы, так как очень много объектов в стране, не выполняют свои обязанности.

    И например, экономически развитые государства США, Япония, ЕС, к примеру, да у них не все сладко, но тем не менее - это highload системы ))
    Спустя 57 сек.

    В общем ты прав
    это я и сам знаю, иначе бы не писал тот пост :)

    Ну кто как)) Я не считаю себя правым, я как раз пишу, что разобраться, что бы меня переубедили или наоборот усилили в моем мнении ))
    Спустя 83 сек.
    *это highload системы, которые отвечают запросам пользователей(читать граждан)
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 10 февраля 2010 г. 13:06, спустя 3 дня 23 часа 24 минуты

    1)У метода __construct нужно объявлять область видимости (private, public, protected)?
    2)Если создать класс работ с бд и на его основе создавать два объекта. То в методе выполнения запросов нужно в mysql_query указывать идентификатор соединения?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 февраля 2010 г. 13:14, спустя 7 минут 29 секунд

    1. по-желанию, но лучше да
    2. ебанутся, нахуй два объекта?
    Сапожник без сапог
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 10 февраля 2010 г. 13:18, спустя 4 минуты 26 секунд

    phpdude,
    1) Сеньк
    2) Интеграцию двух cms пишу. Один объект - работа с одной базой, другой - с другой.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!