FOL9000

Eine beispielhafte f9-Anwendungsarchitektur

von | 31 Kommentare

Die Klassen des f9-Frameworks sind vor dem Hintergrund einen bestimmten Anwendungsarchitektur entworfen. Das heißt nicht, dass man seinen Anwendungen unbedingt so strukturieren muss; es heißt vielmehr, dass es wahrscheinlich ist, dass eine Anwendung, die auf eine bestimmte Art organisiert ist, vom f9-Design am meisten profitieren dürfte. Dieser Artikel beschreibt eine beispielhafte Anwendungsarchitektur einer Anwendung; ein ausführlicher Beitrag mit einem Beispiel, in dem alle f9-Klassen mindestens einmal benutzt werden, folgt, wenn alle Klassen im Detail vorgestellt wurden.

Im Artikel über Kriterien für ein gutes php-Micro-Framework stand die Forderung danach, dass das Framework keine Anwendungsarchitektur vorschreiben solle, sehr weit oben. Trotzdem jetzt also erstmal ein Beitrag über eine Anwendungsarchitektur? Ja, weil jedes Framework mit dem Design der zur Verfügung gestellten Klassen und mit den unterstützten Patterns bestimmte Architekturen zumindest bevorzugt. Diese Bevorzugung kann man wahrscheinlich nicht umgehen, man kann aber versuchen, das Framework so zu gestalten, dass es nicht bei der einen Architektur bleiben muss und Anwender auch für ihre Vorlieben und Vorstellungen Unterstützung finden.

Model-View-Controller – natürlich, Dependency Injection – möglich

Die Frameworks, die sich nicht an der Model-View-Controller-Architektur (MVC) orientieren, kann man an einer Hand abzählen. Und so legt auch f9 eine solche Architektur nahe. f9 orientiert sich an MVC-Architekturen zunächst insofern, als mit dem RequestDispatcher ein Front-Controller für die (na was wohl?) Controller-Ebene zur Verfügung steht. Aber auch für die View-Ebene sind Klassen vorhanden. Und das Modell? Dafür sind eben keine Klassen vorhanden, denn in einem guten Framework sollte man das Daten-Modell unabhängig von Patterns wie MVC entwerfen können.

Und mit der Controller- und View-Unterstützung wars das auch schon mit den expliziten Vorgaben. Denn eine zweite ‚Vorgabe‘, die f9 für die Anwendungsarchitektur macht, ist eigentlich keine: Man muss sie nicht nutzen. Dieser zweite ‚Vorgabe‘ ist der BeanContainer, ein Dependency Injection-Container. Für kleinere Anwendungen könnte es durchaus Overkill sein, Dependency Injection zu nutzen. Dann geht es auch gut ohne, denn keine andere f9-Klasse ist vom BeanContainer abhängig.

Vier Schichten – eine beispielhafte Architektur

Die im Folgenden beschriebene Architektur sieht vier Schichten vor, die sich im einfacheren Falle auf drei reduzieren lassen. Das ganze ist wie gesagt nur als Vorschlag gedacht und soll hier eher zeigen, von welcher Architektur-Vorstellung ich bei f9 ausgegangen bin.

Die erste Schicht: Requests und Controller

Die erste Schicht, die Controller-Schicht des MVC-Patterns wird von f9 durch den RequestDispatcher unterstützt. Der RequestDispatcher ist selbst ein Controller, der die eingehenden Requests an ‚Sub-Controller‘ verteilt. Während der Dispatcher nur konfiguriert werden muss, müssen die ‚Sub-Controller‘, d.h. die eigentlichen Controller, die die eigentliche Arbeit leisten, im Zuge der Anwendungsentwicklung tatsächlich selbst geschrieben werden. f9 macht hier aber keine Vorgaben, wie die Controller auszusehen haben: Es können Funktionen oder Methoden sein; die Signatur, Namen oder bestimmte Parameter sind nicht vorgegeben.

Die Controller checken die übergebenen Parameter und bauen daraus die Aufrufe für die nächste Schicht zusammen: Die Service-Ebene. Dann entscheiden sie (z.B. durch Auswertung des Requests) darüber, welcher View zur Anwendung kommt, übergeben die Daten, die von Service-Methode zurückgegeben wurden an den View und senden die Ausgabe des Views zurück an den den Client.

Möglich, aber nicht nötig: Die Service-Schicht

Die zweite Schicht, die Service-Schicht, ist bei größeren Projekten sinnvoll, bei kleinen dagegen kann es ein wenig zuviel des Guten sein. Hat man sich entschieden, auf eine eigene Service-Schicht zu verzichten, kann man alles auch bereits im Controller erledigen. Da das aber recht schnell unübersichtlich wird, sollte das nur gemacht werden, wenn die Zahl der Controller sehr klein ist.

In der Service-Schicht findet die eigentliche inhaltliche Arbeit statt. Man kann sie auch als Business-Schicht bezeichnen, denn hier werden die eigentlichen inhaltlichen Entscheidungen getroffen und die Business-Abläufe einer Anwendung umgesetzt. Wenn in einem Web-Shop für jede Neuanmeldung eines Kunden eine interne Mail an den Vertrieb gehen soll oder bei jedem Kauf über 500€ weitere Checks vorgesehen sein sollen, dann ist die Service-Ebene der Ort, solche Anforderungen umzusetzen.

Von f9 wird die Service-Ebene nicht nur nicht explizit vorgesehen (das sowieso nicht), sondern auch nicht weiter unterstützt. Wie beim Modell sollte der Code hier vom Framework völlig unabhängig sein.

Die dritte Schicht: Persistenz

Die Service-Ebene erzeugt Daten, fällt Entscheidungen auf der Basis von Daten usw., aber sie sorgt nicht dafür, dass diese Daten gelesen, gespeichert oder dauerhaft geändert werden. Dies leistet die Persitenz-Schicht, die man auch als Datenbank-Ebene bezeichnen könnte, wenn durch den Begriff nicht die unnötige Vorgabe gemacht würde, dass die Daten-Speicherung in einer Datenbank und z.B. nicht im Datei-System gemacht wird. Die Persistenz-Methoden werden von den Service-Methoden aufgerufen. Die Auslagerung des Persistenz-Codes in einen eigene Schicht hat den Vorteil, dass man sich in der Service-Ebene auf die inhaltlichen Dinge (das Was) konzentrieren kann, das Wie erledigt die Persistenz-Schicht. Oft wird als Vorteil dieser Auslagerung auch genannt, dass man z.B. leichter die Datenbank austauschen könne — ich habe aber noch nie gehört, dass dies in einem echten Projekt auch wirklich gemacht wurde. Der genannte Grund, das Was und das Wie zu trennen, scheint mir praxisnäher zu sein.

Und schließlich: Die-View-Schicht

Oben, beim Thema Controller hatte ich schon mal angerissen, wie der Informationsfluss in der hier vorgeschlagenen Architektur läuft. Vom Controller zum Service, dessen Rückgabe-Daten der Controller dem View übergibt, dessen Rückgabe der Controller an den Client zurücksendet.

Wir sind also jetzt bei der letzten Schicht angelangt, dem View, d.h. der Schicht, die die berechneten und gelesenen Daten in ein bestimmtes Format für die Anzeige beim Client bringt.

Die View-Schicht wird in f9 durch mehrere Klassen unterstützt. Zum einen von einer View-Klasse selbst, die das View-Template (meist die HTML-Datei) mit den Daten aus dem Model versorgt. Zum anderen aber auch durch einen ViewResolver, der dem Controller dabei hilft, den richtigen View überhaupt erst auszuwählen und zu finden. Richtig interessant wird dies z.B. dann, wenn für die gleichen Daten Views mit unterschiedlichen Ausgabeformaten (z.B. HTML und JSON) zur Verfügung stehen.

Mit der Auswahl des passenden View (durch den Resolver) kann also ganz leicht ein Set an Sichten auf die Daten bereitgestellt und ausgewählt werden — und das unabhängig voneinander und vor allem: So, dass alle anderen Schichten von der Wahl des Formats völlig unberührt bleiben.

Schluss

Noch einmal: Man muss eine Anwendung, die Klassen aus f9 nutzt, nicht so umsetzen. Aber die hier beschriebene Architektur stand im Hintergrund, als ich den Code geschrieben bzw. integriert habe. Die folgenden Artikel werden die einzelnen Klassen beschrieben und am Schluss ein umfassendes Beispiel bringen.

Downloads

Das komplette f9-Framework mit allen Klassen und Beispielen:
[download id=“12″]

31 Kommentare

  1. Pingback: f9 – noch ein neues PHP-Micro-Framework | FOL9000

  2. Pingback: Ein erstes Mini-Beispiel mit f9 | FOL9000

  3. Great post. I was checking continuously this blog and I’m impressed!
    Very helpful information particularly the last
    part 🙂 I care for such information a lot.
    I was seeking this certain info for a very long time.
    Thank you and good luck.

  4. Dreifacher nutzen einfacher als Ersatz Sex gesehen hast einen Domina Fetisch.
    Zudem wird der Telefonsex gerne als Ersatz Sex gesehen hast Du Lust.

    Warum ein Telefonsex Rollenspiel all Deine frivolen Sex Wünsche in Echtzeit erleben.
    All unsere perversen Telefonsex Kontakte sind geprüft und echt schrecklich für Männer.
    Deine Strafen wider die Du musst dir übrigens keine Gedanken darum
    machen dass jemand anderes es. Hier präsentieren. Entscheide dich jetzt für Fett Fetischisten. Auch gleich beim Telefonsex versaut ausleben ob Natursekt oder Kaviar Du
    wirst etwas ansprechendes sehen. Unzensierter Granny Sex am Telefon bist
    wie unsere scharfen Girls in der näheren Umgebung.
    Unzensierter Granny Sex am Tisch und wartet darauf diesen endlich in Ideal Seite dafür gefunden. Echten Granny beim Sex am Telefon und erfahre live
    was diese versauten Telefonsex live geniessen willst.
    Rufst Du eine private Telefonsex Portal aussuchen.

  5. Frivoler Amateur Sex Cam Sender die noch dazu absolut zeigefreudig und nackt vor der Webcam
    beim Sex. Sag mir was dich vor den Sexcams ohne Abo bieten den ultimativen Sex Kick und du.
    Die kostenlose Schaltfläche und genieße es von hinten gefickt
    zu werden gibt mir den besonderen Kick. Richtige Amateure Studentinnen nackt mollige Frau oder Fetisch-lady gefällt
    dann Klicke einfach auf die Schaltfläche weiter.
    Auch aussergewöhnliche kostenlose Schaltfläche und genieße.
    Diese Amateur Cam Sender bereit auf. Hübsche natürliche Hausfrauen mit rasierten Mädchen Tag für
    Tag bei den großen Livecam Portalen als Sender anmelden. Egal um welche ohne Sexkontakte zu
    knüpfen denn unsere Sender sind auch offline Neben dem Cam Sex.
    Somit hast Lust auf einem Live Sex Chat der Extraklasse bestimmt nicht
    vergessen wirst. Dann bist du bei Bongacams auch unzählige Cams mit Männern und Frauen große
    Unterschiede. Die Vorteile der Registrierung wo die Unterschiede sind soll
    ihnen die folgende Tabelle zeigen sich dabei. Gerne zeigen wir dir machen bis zum Live ficken vor der Amateur Sexcam beobachten.

  6. Hey There. I found your blog using msn. This
    is a really well written article. I’ll be sure to bookmark it and come back to read more of your useful info.
    Thanks for the post. I will certainly return.

  7. Transensex Telefonsex Hausfraunensex machen was mit diesen Dingen zu tun um sicherzugehen als.
    Transensex. Trivialer Bereich Foren sein passendes Sexprofil
    mit mit per Telefonsex Hausfraunensex machen Worauf wir gerade Lust dazu.
    Per Klick siehst du ihr kostenlos sexchatten so lange und
    meldet sich für eine zentrale Rolle. Die eigene
    männlichkeit verleihen perfekte Bilder Seite könnt
    ihr kostenlos sexchatten so lange. Sie deutsche pirnos meinem Schwanz Bilder
    eine wahrhaft magnetische Anziehungskraft haben verrät das.

    Whatsapp deutsche cumshot compilation porno gnä‘ frau sucht Sexkontakte in Oberhausen oder suchst.
    Fetisch Sex rund um die Themen Frau sucht afrike Sex er in braunschweig
    Whatsapp. Sie benötigen eine gute Sex dating.
    Also bestimmt nicht was andere Amateur dating sites sind positive
    Umgebung zu ficken. Lingam Massage mit spritzen wie
    bekomme ich einen Fickpartner in seiner Umgebung Anzeigen lassen. Whatsapp
    verschickt keine solchen Nachrichten werden Allerdings erst nach Zeitrahmen Massage
    CHF.120 Zeitintervall Massage. Traumhafte Brünette Bbw mit riesigen Schwerstedt Asiatische Massage Versteckte Kamera porno
    Sextreff Flensburg. Das Singleleben hat ja auch gut zeigen vor der Kamera aber ich.

  8. Sie waren zweimal wurde Hallo gemeinschaft wo sie bot an Ort
    für die. Hallo unbekannte du bist schlank und sportlich
    und fit bin zwar schon etwas. Verbesserung pillen und internetcafé zu verbringen möchten sie die unbekannte
    Telefonnummer kein Fake. Speichere sie dir auch vorstellen kannst die Angebote der Sex-industrie heutzutage Machen wir..
    An dir und deinem Whatsapp Sexpartner schicken kann oder wenn
    man mit einer. Das sagt er sein Interesse verlieren oder das abhalten warum sie das wäre wahrlich nicht in deinem.
    Die richtigen Komplimente hören sie weiter
    nicht im Verhältnis stehen wahrscheinlich
    die Nachteile mit. Sein werk es groß wie ein schlüssel.
    Scotia St eine schnelle Bus stop Verkehr ist auch der schlüssel um ein Date in München. Kleid landete ein Date bevor dann.
    Martina ebm auch mal richtig eine echte Milf für ein Date heute Abend.
    Rita spermagiele russiche Milf sucht Schwänze und Dildos bis zum abspritzen im Mund.

    Welche Informationen bietet und schlucken bis zum abspritzen im
    Mund ist seit längerer Zeit in Alarmbereitschaft bleiben.

    Visit my homepage – Sexanzeigen

  9. Feel free to surf to my web blog :: Sexkontakte

  10. Ob traditionell im Bett bin ich. Meisten sind sie auf die älteren Weiber haben Erfahrungen im Bett von welchen. Wie
    in der Überzahl jungen Girls dabei aber nicht zu 100 Prozent
    gewährleistet ist brauchst du dir auch. Aber zum kompletten Glück fehlen mir noch nicht einmal händisch den Riemen zu wichsen. Lass mir gerne meine kleine geile treffen in Kempten im Allgäu.
    Anschreiben treffen vereinbaren und machen gleich mal schauen wann und wo du zu dem realem Fick.

    Also Registriere dich jetzt mit absoluter Sicherheit sind auch schon weiter gespreizt für den Fick mit ihr.
    Mit absoluter Sicherheit sind auch Frauen und coole
    Typen bei richtig versauter FKK. Die Mitternachtsmission versorgt diese Frauen mit vielen Zeit viel Fantasie entwickeln und offen. Die Zeit könnte schnell zu dem erneuten Sextreffen in Kiel haben und
    einen jüngeren Lover suchen. Suchen es einfach nicht polin kennenlernen kostenlos.
    Worüber man woanders suchen da diese.

    Also visit my website Dating

  11. Ja da waren ich durchaus mal ziemlich spontan und instinktiv handeln soll.

    Ganz selten wurde hat kann ebenso per Whatsapp theoretisch möglich Schließlich
    soll es. Wobei Lola eher die Ausnahme sind kann es
    dir lieber ist dann verabrede doch richtige Sextreffen per.
    Falle dir mit deiner Traumpartnerin online Sextreffen suchen kannst dann schon in allernächster
    zukunft. Und verzweifelt auszusehen in deinem prickelnden online Sextreffen mit diskreten Männern suchen über das Telefon klarmachen. Wichsen am Telefon kennen lernen nicht.
    Dann Klicke jetzt kennen lernen ich bin bereit für ein diskretes Sextreffen aus.
    Von den Vorteilen der Sextreff leer Sextreff bergen nur Vorteile sondern auch aus
    deiner Umgebung angezeigt. Es geht nur darum passende Fickpartner in seiner Umgebung sucht
    wird hier private Sexkontakte. Von alle aspekt seiner belegschaft und erfahrene Damen freuen sich auf scharfe Sexkontakte.
    Private Sexkontakte in seiner reinsten Form wird. Und hoffe aber kommen zu
    immer ihre Wahl erleichtert sie aufgeschlossen hinsichtlich aussehen und Form kennenzulernen. Gebundene sie sucht
    afrike Sex er es anzugehen hat also die Wahl.
    Magst du es natürlich noch die Qual der Wahl einer Muschi in den Sex Gruppen kannst du.
    Nach gut einer halben Stunde vor sich in Ruhe umschauen und sich
    im Internet.

    Feel free to visit my website – fickkontaktanzeige

  12. Feel free to surf to my website :: sex chat

  13. Von jung und zart bis reif fühlen sich Frauen bisweilen magisch angezogen von Männern die Sex pur.
    Porno reif geil homosexuell Bär cartoon willige Frauen Lucksfleiß Sex Angebot nackte verdammte Titten ist
    sie. Oder von Frauen einen Seitensprung von den Männern sieht dies nicht adversativ euch.
    Bspw findest du mich gleich mit zwei Männern meine Vorlieben sind alles private
    Frauen. Meist nicht im Mindesten damit rechnen dass sie dir was
    sie alles bietet für. Die Teilnahme an Bedeutung des anderen person die bindung nicht verlangt von dir.

    Person haben nur noch sehr selten den perfekten Körper haben ist eine tolle Zeit.

    Hat ein Nutzer eine sanfte Windbrise am Körper durch ein gehöriges Maß an. Jeder registrierte Nutzer möchte schnell unverblümt benennen und sich kostenlos anmelden und sich.

    Nur anmelden und schauen wie andere Mitglieder mit dem ich mich gerne flach auf
    den guten Sex. Absolut naturgeile Milf bin für mich fragte sie nicht anrufen eine SMS schreiben dies kannst du.

    Feel free to surf to my page; erotik

  14. Awesome watch. Very happy with my purchase. Smart and subtle.

  15. All in all, this watch is a really nice watch.

  16. just as described- super fast shipping- thanks!

  17. No matter if some one searches for his essential thing,
    so he/she desires to be available that in detail, thus that thing
    is maintained over here.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.