Klassen dynamisch anlegen und vererben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Klassen dynamisch anlegen und vererben

    Hallo!
    gibt es eine Möglichkeit Klassennamen dynamisch zu vergeben?
    z.B. so...

    PHP-Code:
    $nameDerKlasse   // Kommt aus der DB

    class $nameDerKlasse {
    // Eigenschaften und Funktionalität

    bei Funktionen klappt das ja...
    PHP-Code:
    Funktion() {
    echo 
    "ich bin in der Funktion";
    }

    $funktionsname="Funktion";
    $funktionsname(); 
    Warum das ganze? Ich versuche gerade ein Rechtemanagement-System mit Vererbung (mit Nested Sets) zu erstellen. Und suche nach einer Möglichkeit von der Hierarchie des Nested Sets (SuperAdmin, Admin, Editor etc) die Klassen dynamisch zu erstellen... Nur mal so eine Idee...
    Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

  • #2
    Re: Klassen dynamisch anlegen und vererben

    aggregate, gibts jedoch in php5 nicht mehr
    http://de2.php.net/aggregate

    ansonsten könnte das hier interessant sein
    http://www.php.net/manual/en/ref.runkit.php

    ansonsten kenne ich keine Möglichkeit...


    (aber ist das denn überhaupt wirklich nötig? Oo,)

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Ich habe mir schon viele Rechteverwaltungen angesehen ... Mambo, Typo3 etc...

      Einfaches Beispiel:

      PHP-Code:
      user_type             lft        rgt
      Gast                  1         10
      User                  2          9
      Editor                3          8
      Admin                 4          7
      SuperAdmin            5          6


      class Gast {
      // Rechte des Gastes
      }

      class 
      User extens Gast {
      // Erweiterung der Eigenschaften von Gast
      }

      class 
      Editor extens User {
      // Erweiterung der Eigenschaften Editor
      }
      //... 

      Wenn ich die Hierarchie in Mysql (Nested Sets) anlege, warum nicht sofort als Klassenhierarchie...
      Wenn jetzt jemand im "Backend" einen neuen user_type anlegt und in die bestehenden dazwischen schiebt, soll der Code automatisch angepasst werden.
      Lässt sich bestimmt leichter handeln...
      Wie gesagt, ich mache mir nur Gedanken über evt. neue Ansätze...
      Zuletzt geändert von php_jan; 08.12.2005, 16:32.
      Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

      Kommentar


      • #4
        aber wozu braucht denn jede Gruppe eine eigene Klasse? Eigentlich brauchst du doch nur im Skript abfragen ob der User ein bestimmtes Recht hat
        PHP-Code:
        if ($user->has_right('newsletter')) echo 'skript' else die(); 
        (um es mal ganz billig zu zeigen)

        Ich verstehe nicht wozu du für jede einzelne Gruppe eine abgeleitete Klasse willst/brauchst?

        Und warum du das als nested-set aufsetzen willst verstehe ich auch nicht...
        Was soll denn überhaupt das Ergebnis werden? Scheinbar blicke ich in die Richtung eines anderen Ergebnisses als du

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          mir kommt es auf die "Hierarchie" an.
          z.B. das ein Admin die Accountdaten nicht vom Superadmin ändern darf aber anders herum schon. Sicher gibt es da bestimmt unzähliche Möglichkeiten. Mit Vererbung von Klassen (progge eigentlich in Java) bin ich flexibler.

          Gruß,
          Jan
          Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

          Kommentar


          • #6
            Ja und was ist daran nun so schwer, diese Hierarchie per normaler Rechtevergabe zu lösen, wie es ghostgambler sagte?

            Du kannst doch einfach Rechte anlegen, wer welchen Useraccount ändern/erstellen/löschen darf, und dann:

            PHP-Code:
            if($object->hasRight('Edit_user[superadmin]')) 
               echo 
            'script';
            else
               die(
            'nicht erlaubt!'); 
            bzw

            PHP-Code:
            if($object->hasRight('Edit_user[admin]')) 
               echo 
            'script';
            else
               die(
            'nicht erlaubt!'); 
            Zuletzt geändert von firstlord18; 08.12.2005, 19:28.

            Kommentar

            Lädt...
            X