Как мне выложить свой класс входа в PHP? - PullRequest
0 голосов
/ 27 апреля 2010

Итак, будет одна форма входа; однако 1 из 3 типов членов будут подписываться в member_type_a, member_type_b, member_type_c, у каждого из которых есть одни и те же свойства, а у некоторых могут быть определенные методы и / или свойства. Я хочу, чтобы класс был сохранен в переменной сеанса для использования со страницами области членов.

Какие-либо предложения по применимым шаблонам дизайна?

Гордон: Контроль доступа не моя проблема ... Я понимаю, как контролировать, куда пользователю разрешено заходить. Мой вопрос о том, как структурировать мой класс входа в систему; когда пользователь входит в систему, метод будет искать в 3 таблицах правильное имя пользователя и пароль. Когда он будет найден, я узнаю, к какому типу пользователей он относится, и, соответственно, смогу перенаправить его на свою страницу участника. Я просто пытаюсь обсудить, как я могу сохранить свои классы слабо связанными таким образом, что, если бы нам пришлось добавить больше типов членов по линии, это было бы бесконечно масштабируемым.

Например, одним отличием будет URL перенаправления

Ответы [ 3 ]

1 голос
/ 27 апреля 2010

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

1 голос
/ 09 июля 2010

Мне кажется, что ваша проблема не в классе входа, а в классе пользователя. Почему бы вам просто не использовать наследование и создать родительский класс User, а затем создать 3 подпользовательских класса. Например:

class User {
    $email;
    $password;
    $etc;
}

class UserTypeA extends User {
    $specific_property_1;
    $specific_property_2;
    $specific_property_3;
}

class UserTypeB extends User {
    $specific_property_1;
    $specific_property_2;
    $specific_property_3;
}

class UserTypeC extends User {
    $specific_property_1;
    $specific_property_2;
    $specific_property_3;
}

Сохраните все общие атрибуты и методы в родительском пользовательском классе и все уникальные атрибуты и методы в дочерних классах.

0 голосов
/ 27 апреля 2010

Итак, я решил, что буду использовать шаблон стратегии. У меня будет один класс входа в систему, который определяет тип пользователя, вошедшего в систему. Если это пользователь типа A, я установлю в качестве свойства моей стратегии объект typeAStrategy, и все надлежащие методы и свойства будут находиться в моей базе класс.

Кроме того, когда я передам $ this в свой объект стратегии ... я смогу использовать идентификатор и любые другие переменные, которые мне понадобятся для создания ссылки перенаправления

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