Christian Seiler: Zugriff auf Eigenschaften einer fremden Klasse

Beitrag lesen

Hallo Andreas,

prüfst Du so ob es eine Instanz der Klasse gibt oder was machst Du da?

Ich prüfe, ob die Methode statisch aufgerufen wurde (Klasenname::Methode) oder von einem Objekt aus. (Objekt->Methode) Wenn ersteres der Fall ist, dann gibt es kein Objekt und auch keine Variablen. Daher muss ich es erzeugen.

Wenn Du mit :: zugreifst _brauchst_ Du doch überhaupt keine Klasse!

Klasse ja, Instanz nein.

Und wennich doch eine Instanz brauche dann doch liebr eien Referenz auf die Klasse, oder?

Wie gesagt, es geht hier einfach darum: Wenn eine Klasse nicht instantiert ist, dann kannst Du nicht auf die Variablen dieser Klasse zugreifen. Du musst sie also instantieren oder eine vorher vorhandene Instanz

Ist das was Du jetzt gemachst hast umständlich oder optimal?

Optimal - nein. Es ist ein Hack. Aber einfacher, denn Du kannst auf die Elemente einer Klasse zugreifen, obwohl die Klasse nicht instantiert wird. Dafür wird die Klasse jedes Mal instantiert. In dem Fall täte eine globale Variable (wie mein allererster Vorschlag in diesem Thread) besser.

Welche Version meinst Du oben?

Hä?

Wiel ich einfach die ursprüngliche RegEx /^/(de|en).../ weiterbearbeitet habe, ist wohl Quatsch, wobei - ich kann nicht immer garantieren das die URL-Struktur so wie oben beschreiben aussieht. Daher have ich alle Ausdrücke mit ()? versehen so bekomme ich auch wenn z.B. /de/ fehlt immer noch die richtigen Werte in die Variablen. So schalte ich eine potentielle Fehlerquelle ab.

Das Fragezeichen hatte ich ganz übersehen... Achso, ja dann ist ja ok.

  1. habe 4 verschidene Benutzegruppen die jeweils einen eigenen Login-Bereich haben müssen, mit verschiedenen Funktionalitäten...

Löse das über eine Rechteverwaltung. Du kennst "Access Control Lists"? (Beispiel: Rechteverwaltung unter Win NT, 2000, XP und .NET Server) Wenn Du Access Control Lists implementierst, und zwar Rechte auf _jedes_ Objekt, also Menüeinträge, Module, etc. - dann kannst Du das ganze nur mit einem Login lösen und hast das ganze enorm vereinfacht.

  1. Müssen Module unabhängig von der Basisvwersion hinzufügbar und entfernbar sein. Die Module können auf alle 4 Benutzergruppen-eigene Seiten Einfluß haben, ob jetzt Menüstruktur, extra Seiten/-Funktionalitäten, Datenbank-Tabellen...

Module sollte erst einmal unabhängig vom Menü sein. Du solltest in einer Menüverwaltung die Module manuell mit einem Menüpunkt verknüpfen können. (Genaugenommen speicherst Du dann einen Pfad zum Menüpunkt, der dann verlinkt wird) Du musst natürlich auch aufpassen, dass kein Idiot ein Modul manuell »ausprobiert«. Dazu musst Du abfangcode schreiben.

und wenn ich es entferne verschinden die Funktionalitäten und Menüpunkte wieder. Sicher sinddas noch ein paar Kleinigkeiten die ich noch nicht im Detail geplant habe, aber ich denke das müßte ich so hinbekommen.

Schlechte Idee, siehe einen Absatz höher.

Vermutlich mache ich ein "add.module.fragebogengenerator.php" -Script, welches alle Einstelluneg vornimmt, und genauso "delete.module.fragebogengenerator.php" welches alles wieder entfernt.

Schlechte Idee. Im Prinzip sollte ein Modul (oder Untermodul oder wie Du es organisierst) eine Datei sein. Diese Datei musst Du hochladen. Dann steht das Modul in der Administration zur Verfügung. In der Administration kannst du das Modul dann einrichten. Wenn das Modul Tabellen braucht, dann hast Du noch 2 zusätzliche SQL-Scripte, die Du dann einspielen kannst - eines, um die erforderlichen Tabellen zu erstellen und eines, um sie wieder zu löschen. Diese solltest Du auch manuell einspielen. (evtl. über ein Administrationsinterface, aber immer noch manuell)

Wirklich weit bin ich aber noch nicht, außer der Verzeichnisstruktur und den ersten paar Basis-Scripten steht da noch nicht viel, aber das einbinden des "requested" Scripts funktioniert, dessen Ausgabe mit Smarty funktioniert auch, zugriff auf die Datenbank via PEAR auch, Und das Konfigurieren klappt auch so langsam, das Parsen des Request und der GET/POST Parameter auch...

Das ist doch schon mal etwas.

wenn sich alles nur in meinem Kopf abspielt ist das auf die Dauer wirklich demotovierend ;-)

ACK.

Wenn Dir was an meinem Konzept, oder der Verzeichnisstruktur oder woran auch immer nicht passt sag es bitte,

Siehe oben. ;-)

Grüße,

Christian

--
Ich wünsche allen ein frohes neues Jahr 2003!
Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
Hmm, was könnte ich sonst noch in die Signatur schreiben?