Rachus: MySQL Loginsystem

Beitrag lesen

Hallo,

Was machen denn diese Variablen und warum können sie nicht Eigenschaften eines Objekts sein?

sie speichern unter Anderem die MySQL-Verbindung und beinhalten das Konfigurationsarray. Und eigentlich könnten sie auch Attribute eines Objektes sein. (dann würde ich aber das gesamte System in einer Klasse realisieren)

Ist es nur nicht sinnvoll, oder muss verhindert werden, dass mehrere Instanzen entstehen?

Theoretisch macht es gar nichts aus, mehrere Objekte der Klasse zu erzeugen. Es macht aber einfach keinen Sinn, da dabei immer das gleiche passiert und zur Verfügung gestellt wird. Damit wären mehrere Instanzen reine Ressourcenverschwendung.
Daher könnte ich auch eine Klasse machen, allerdings mit dem eben genannten Schönheitsfehler (der mir jetzt aber auch egal wäre).

Oder willst du durch das Singleton-Pattern nur eine genau definierte Zugriffsmethode erstellen, die alle anderen Verwender nehmen können, ohne irgendeine Instanzvariable kennen zu müssen?

Ich wollte nur verhindern, dass es mehr als eine Instanz der Klasse gibt.

Schön gepackte Variablen bekommt man durch die OOP, da braucht es noch kein Singleton dazu. Schön gepackt bekommt man auch alles, wenn man funktional programmiert.

Und da weiß ich wieder nicht, wie ich es in PHP schaffen sollte, nur mithilfe von Funktionen die Variablen (MySQL-Verbindung, Konfigurationsarray, ...) nicht jedes Mal bei einem Funktionsaufruf neu erzeugen zu müssen. Da sehe ich keinen Weg, das ohne globale Variablen hinzubekommen.
Dann wäre es sogar mehr als logisch, das System als Klasse zu implementieren.
Allerdings würde das bei mir fast wieder ein halbes Dutzend neue Fragen aufwerfen.

Dazu müsste ich erst einmal konkrete Vorstellungen haben, was alles für Anforderungen gelöst werden sollen. Am Ende wird sicher nicht nur eine Klasse entstehen, wenn man es "richtig" angehen will. Melkt eine Kuh sich nicht selbst? Eine Benutzer-Klasse kann Eigenschaften und Methoden haben, die den Benutzer und seine Fähigkeiten beschreiben. Wenn er aber irgendwo Zugang haben möchte, vollführt er mit seinen Ausweis eine Handlung an einem Zugangskontrollsystem. Schon hat man zwei Klassen. Wenn das ZKS seine Daten in einem DBMS speichert, kommt noch eine Datenbankabstraktion hinzu. Für einfache Fälle will man vielleicht nur eine Textdatei haben => sind wir schon bei 4 Klassen.

Das gibt mir jetzt wirklich zu denken. Es wäre tatsächlich eine gute Idee, das alles zu extrahieren und mehrere Klassen zu machen. Dazu muss ich aber meine Planung intensivieren. Langsam brummt mir der Kopf!

Das kann man nun noch weiter treiben wenn man will. Die Frage ist: Muss es so umfangreich ausgestaltet sein? Ein wichtiges Prinzip bei der Entscheidungsfindung ist YAGNI - "Du wirst es nicht brauchen". Kapseln und definierte Schnittstellen schaffen für die Funktionalität, die du dir vorstellst, ist erst einmal wichtiger als das Ausgestalten dahinter.

Daher habe ich mich jetzt entschieden, die (leicht nachrüstbare) Rechtetabelle aus dem Konzept zu streichen. Bislang finde ich auch noch keine wirklichen Einsätze dafür.

Wenn du dir Perfektionismus als Lebensziel gestellt hast, wirst du dich darauf einstellen müssen, ständig zu scheitern.

Naja, ich will eigentlich schon, dass alles, was ich anpacke super gelingt. Da ich aber motorisch relativ ungeschickt bin, habe ich bei handwerklichen Arbeiten meine Anforderungen schon sehr weit heruntergeschraubt.
Bei Informatik ist mein Ziel schon etwas höher. Da möchte ich eigentlich schon fast die "sich selbst schreibende Programmiersprache".

Mit der Zeit werden deine Antworten für mich leider immer unverständlicher. Allerdings freue ich mich, dass du mir trotzdem noch versuchst, alles zu erklären.
Vermutlich fehlt mir einfach das nötige Vorwissen.

Schönen Abend

Rachus