2012-04-10 9 views
3

Ich bin endlich dabei, das Mapper-Entwurfsmuster zu verwenden, um ein objektorientiertes System zu strukturieren, das ich in PHP erstelle.PHP Mapper-Muster für Link-Tabellen

Ich habe Klassen wie User und Project, die jeweils mit entsprechenden MySQL-Tabellen (und Mapper-Klassen zB ProjectMapper, UserMapper)

Was ich möchte wissen, ist, wie Link-Tabellen zu nähern, während dieses Muster. Ich habe eine andere Klasse Invitation, die lädt eine User auf einem Project arbeiten. (Es ist nur eine Standard-Link-Tabelle, mit einem project_id und einem user_id).

Angenommen, ich möchte eine Sammlung aller Benutzer erhalten, die einem bestimmten Projekt zugewiesen sind. Erstens, wo soll diese Funktion hingehen? ProjectMapper Klasse, InvitationMapper Klasse?

Und zweitens. wie kann ich das ordentlich und sinnvoll machen?

Vielen Dank im Voraus.

Antwort

0

Werfen Sie einen Blick auf diesen sehr interessanten Artikel - es hat mir sehr geholfen, als ich auf mein eigenes Modell arbeiten, die effizient und einfach sein sollte, verwenden:

http://www.survivethedeepend.com/zendframeworkbook/en/1.0/implementing.the.domain.model.entries.and.authors

Der Autor erklärt, wie um ein zuverlässiges Modell in Zend Framework zu erstellen, aber Sie können seine Ideen auch in anderen Frameworks verwenden oder einfach Ihr eigenes Modell ohne Framework erstellen.

Ich empfehle Ihnen auch (wenn Sie mit Zend arbeiten), die Testteile zu überspringen - das Thema selbst ist sehr komplex und die Tests können durchgeführt werden, wenn Sie mit Ihrem Modell fertig sind.

mein eigenes Modell Gebäude, modifizierte ich ein paar Dinge, also, wenn Sie weitere Fragen haben - Sie wissen - zögern Sie nicht, sie zu fragen;)

+0

Das ist eine ziemlich heftige Artikel ist! Ich benutze kein Framework, aber ich werde definitiv nach übertragbaren Ideen suchen. Vielen Dank. – Alex

+0

Es hat einige Tage gedauert, bis ich dieses Modell verstanden und implementiert habe, so dass ich Sie nur ermutigen kann, nach ein paar Stunden nicht aufzugeben;) Wenn Sie mit diesem Artikel fertig sind, werden Sie sicher einige konkrete Fragen haben - ich werde Ihnen gerne antworten sie (wenn ich die Antwort natürlich wissen werde) – Okizb