Ich habe gearbeitet, um zu OOP in PHP zu verschieben. Ich habe Erklärungen auf php.net gelesen, aber ich hatte gehofft, dass ich hier einige konkrete Antworten bekommen könnte.Wie Klassen in PHP zu strukturieren
Ich habe versucht, das folgende Beispiel zu erstellen, um meine Frage zu veranschaulichen. Angenommen, ich habe die Klassen "Datenbank", "Produkte" und "Benutzer" und möchte Produkte anzeigen, wenn ein Benutzer Zugriff hat.
Also rufe ich die "Products" -Klasse "showProducts()" -Funktion, die wiederum eine Instanz der "User" -Klasse erstellt, die eine Instanz des "Database" -Objekts erstellt und überprüft die Benutzerzugriffsebene.
Wenn der Benutzer Zugriff hat, erstellt die Funktion "showProducts()" eine weitere Instanz des Objekts "Database" und fragt die Datenbank ab.
Ich hatte gehofft, jemand könnte veranschaulichen, wie man das auf die richtige Weise macht.
Ich möchte eine Art von Controller-Klasse haben, die ein "Database" -Objekt erstellt, das für alle Klassen verfügbar ist, die darauf zugreifen müssen, ohne mehrere Instanzen des "Database" -Objekts erstellen zu müssen. Ich möchte dasselbe mit der Benutzerklasse, also gibt es ein $ users-Objekt, auf das alle Klassen zugreifen können, ohne jedes Mal ein neues Objekt erstellen zu müssen, wenn ich etwas in der "User" -Klasse verwenden muss.
Ich entschuldige mich, wenn meine Frage nicht klar ist, und danke im Voraus für alle Antworten !!
Danke an alle für die Antworten!
Vielen Dank für die Antwort!Wenn ich also eine andere Klasse hätte, auf die in der Benutzerklasse verwiesen wird, würde ich auch das $ user-Objekt als Parameter übergeben? – Ben
Ja, Sie können! Sie können beliebig viele Kurse absolvieren. Sie können Objekt über Konstruktor übergeben, wenn das Objekt dieses Objekt wirklich benötigt. Und Sie können es durch Setter-Methode übergeben, wenn das Objekt optional ist. Sobald Sie komplizierte Abhängigkeiten erhalten, können Sie darüber nachdenken, Dependency Injection Container zu verwenden, in dem Sie Abhängigkeiten beschreiben würden und Container Objekte aus anderen Objekten zusammenstellen und an Sie zurücksenden könnte. Sie können hier mehr über Dependency Injection und Dependency Injection Container lesen : http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container – otporan