4 Stimmen

PHP Object Oriented - Der beste Weg zur Implementierung mehrerer Benutzerrollen

Ich habe drei Arten von Benutzern: A, B, C Daraus ergibt sich eine Benutzerbasisklasse und dann haben wir 3 abgeleitete Klassen. Es ist jedoch möglich, dass ein Benutzer 2 Typen gleichzeitig hat. Wie würden wir damit vernünftig umgehen, wenn wir bedenken, dass der/die Benutzertyp(en) die Art des Zugriffs auf eine Anwendung bestimmen.

6voto

devoured elysium Punkte 95600

Vielleicht sollten Sie Ihr Design neu definieren. Ich würde sagen, es wäre besser, zwei Klassen zu definieren:

  • eine Rollenklasse
  • eine Benutzerklasse

Eine Benutzerklasse könnte dann eine Sammlung von Rollen haben. Das macht das ganze Design einfacher und sauberer.

Ein Benutzer kann keine, eine oder mehrere Rollen haben. Aber ein Benutzer ist nicht per se eine der Rollen, die er haben kann. Er hat lediglich die Fähigkeit, eine Rolle anzunehmen.

Aber natürlich können Sie hier das Decorator-Muster verwenden, wie von einem anderen Poster erwähnt.

5voto

Piotr Pankowski Punkte 2358

Ich würde verwenden Dekorationsmuster z.B.

$user = new User ();
$user = new Role1 ($user);
$user = new Role2 ($user);

4voto

rakke Punkte 6139

Ich hätte einen Blick auf die ACL Klasse des Zend Frameworks. Macht einen guten Job, wenn es darum geht, mehrere Rollen für verschiedene Benutzer zu haben. Es gibt auch viele Artikel und Blogs, die die Verwendung der Zend ACL diskutieren. Mehr Allgemeines über ACL: wikipedia - acl

Eine weitere Möglichkeit, mit unterschiedlichen Rollen und Berechtigungen umzugehen, ist die rollenbasierte Zugriffskontrolle: wikipedia - rollenbasierte Zugriffskontrolle

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X