2009-08-16 2 views
1

So bin ich ein wenig verwirrt auf dem objektorientierten Teil von PHP. Ich entschuldige mich gleich für die Tatsache, dass ich sehr wenig über PHP und Datenbanken weiß.Warum Objekte erstellen, wenn Sie nur eine MySQL-Datenbank verwenden können?

Meine Frage ist, wenn Sie sagen, eine Datenbank, um Benutzer darin zu halten, warum sollten Sie eine Klasse/Objekt für diesen Benutzer machen, wenn Sie nur Informationen aus der Datenbank ziehen können?

Wenn Sie ein Objekt/eine Klasse erstellen, wo sind die Daten für die Objekte gespeichert? Zum Beispiel, wenn ich eine Klasse mit einem Benutzernamen und einer E-Mail habe, und ich mache dieses Objekt, wurde es gespeichert?

Vielen Dank, dass Sie sich die Zeit genommen haben, einem lernenden Anfänger zu helfen!

Antwort

6

Meine Frage ist, wenn Ihre Herstellung pro eine Datenbank sagen halten Benutzer darin, warum würden Sie eine Klasse/Objekt für den Benutzer machen möchten, wenn Sie nur Informationen aus der Datenbank ziehen können.

Sie machen Objekte, die bestimmte Funktionen abstrahieren. Was passiert, wenn Sie (hypothetisch gesprochen) zu Microsoft SQL Server wechseln? Anstatt Ihre gesamte Website zu aktualisieren, bearbeiten Sie einfach die Implementierung des Objekts.

Auch wenn Sie eine Objekt/Klasse machen waren, wo die Daten für die Objekte gespeichert? Wie eine Klasse mit einem Benutzernamen und E-Mail, und ich mache das Objekt, wurde es gespeichert.

Derselbe Ort wie jede andere Variable.

0

Datenbanken speichern Daten in einer Tabellenform, die entworfen wurde, um schnell zu sein. Objekte sind so viel flexibler; Sie können Bäume sein, sie können Listen sein, sie können Widgets sein oder irgendetwas anderes aus einer Million Dingen. Sie können Präsentation, Daten oder Struktur darstellen. Und manchmal sind sie noch schneller (wenn es einfacher ist, einen Wert im laufenden Betrieb zu berechnen, anstatt ihn aus einer Datenbank abzurufen). Datenbanken sind sehr mächtig und wichtig, aber nur für eine kleine Teilmenge der Aufgaben geeignet, die eine Webanwendung ausführt. Der Rest wird durch Objekte erleichtert.

1

Es gibt viele Gründe, warum Sie eine Abstraktion zusätzlich zum reinen Datenbankzugriff in einem vernünftig großen Softwaresystem verwenden möchten. Wenn Sie sich einen objektorientierten Ansatz ansehen, sollten Sie bedenken, dass eine der Kernideen des objektorientierten Paradigmas darin besteht, dass ein Objekt sowohl Daten als auch Logik einkapselt, die auf diese Daten einwirken.

Nehmen wir ein konkretes Beispiel. Angenommen, ein Teil Ihrer Anwendung (die Benutzeroberfläche) muss Benutzerinformationen anzeigen, einschließlich eines gut formatierten Benutzernamens. In einer OO-Welt könnten Sie ein Benutzerobjekt haben, das eine lokale Kopie der Daten in der Datenbank speichert und Methoden wie getFormattedName() oder etwas Ähnliches verfügbar macht. Jetzt kann der Rest Ihrer Anwendung diesen Code verwenden, ohne dass Sie etwas über die Datenbank wissen müssen oder wie der Name formatiert ist. Auf der anderen Seite, wenn Sie nur Daten direkt aus der Datenbank ziehen, dann muss der UI-Teil der Anwendung (der Datenbanken nicht wirklich interessiert) immer noch selbst wissen, wie man Informationen über den Benutzer aus der Datenbank bekommt und wie formatieren Sie den Benutzernamen gut.

1

Um es einfach auszudrücken, gibt es Logik, die nicht in einer Datenbanktabelle erfasst wird, sondern sich auf den Eintrag bezieht. Die Datenbank speichert nur die Rohdaten.Wie die Daten verwendet werden und wie sie mit dem Rest Ihrer Anwendung interagieren, sollte in Ihren Objektmethoden festgehalten werden.

1

Sie vermissen eine grundlegende objektorientierte Design. Bei der vollständigen Ignorierung der Erbschaft kombinieren Objekte Informationen/Daten und Funktionen/Prozeduren/Operationen in einer einzigen Einheit, einem so genannten Objekt. Dieses Objekt führt Operationen (Methoden/Verhalten/Funktionen/Prozeduren) durch und hat Attribute. Eine Datenbank enthält nicht den gesamten Satz von Betriebs-/Verfahrensinformationen. Eine Datenbank enthält nur Daten und weiß nicht, wie die Daten verwendet werden können oder was die Daten tun.

Verwandte Themen