Ich habe ein Projekt, bei dem DB hinter Web-Services (viele davon) versteckt ist. Kurz gesagt - direkter Zugriff auf DB ist nicht möglich.
Ich benutze Symfony2 und zwinge mich jedes Mal Objekte zu verwenden, wenn ich Objekte habe, die Daten "speichern" (zum Beispiel: Benutzer, Auto, Raum) und Dienste (zugänglich von Container) / Modelle, wenn eine schwerere Logik involviert ist (zum Beispiel TransactionMaker, RoomBooker, CarDestroyer usw.).
Entitäten ohne ORM-Beschreibungen wurden über Arrays ausgewählt, da Framework eine sehr einfache Möglichkeit zum Validieren, Erstellen von Formularen und IDE-Intellisense bietet.
Im Moment funktioniert es in Ordnung, aber einige Entwickler behaupten, dass eine Entität immer die Tabelle in der DB widerspiegeln muss. Stimmt das?
Entitäten ordnen nur dann einer Datenbanktabelle zu, wenn sie dafür konfiguriert sind, aus dem Buch, das sie liest:
Die Klasse - oft als "Entität" bezeichnet, dh eine grundlegende Klasse, die Daten enthält - ist einfach und trägt dazu bei, die Geschäftsanforderungen zu erfüllen, die Produkte in Ihrer Anwendung benötigen. Ссылка
Es ist eine gute Übung, Ihre Daten auf eine formellere Weise als mit einfachen Arrays zu modellieren, und deshalb existieren sie.
Vielleicht werden sie am häufigsten verwendet, um Daten in die Datenbank zu mappen, aber das ist keine Voraussetzung. Sie erfüllen den Zweck, Datencontainer zu sein, die die Informationen Ihrer Anwendung auf sinnvolle Weise modellieren. (d. h. um einen USER in einer USER ENTITY zu modellieren)
Wenn Sie keine Datenbank verwenden, um persistent zu sein, können Ihre Entitäten sie verwenden, um Daten weiterzugeben, Formulare zu erstellen, den Validierungsdienst, die Sicherheit usw. zu verwenden. Es könnte auch eine gute Idee sein, einen Dienst zu erstellen, der den Zugriff auf die Informationen in Ihren Webdiensten über Ihre Symfony-App ermöglicht, damit Sie beispielsweise Folgendes erhalten können:
%Vor%Dies ist natürlich nicht im Thema, aber es ist ein Beispiel dafür, wie Sie Entitäten ohne Datenbankzugriff verwenden könnten.
Tags und Links symfony