Benutzername    Passwort    Autologin    
  Passwort vergessen       Registrieren  
beeForum Foren-übersicht » hal9000
Neues Thema eröffnen   Neue Antwort erstellen Hervorhebung entfernen


DLW 2008: Beyond MCV - Enterprise PHP Patterns
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
boris



Beiträge: 10153

Titel: DLW 2008: Beyond MCV - Enterprise PHP Patterns
Verfasst am: Sa, 18 Apr 2009, 10:04
Beitrag
Antworten mit Zitat

Beyond MCV – Enterprise PHP Patterns

Stefan Priebsch, e-novative GmbH
27.5.2008, 11:40, Raum 1.26, ca. 35 Personen (10 ohne Sitzplatz)

  • Patterns sind Lösungsansätze für alltägliche Probleme, keine fertigen Lösungen
    (zurückgehend auf Architekt Christoph Alexander)
  • Frameworks basieren auf Patterns
  • Grundlegende Patterns (die auch in PHP vorhanden sind / verwendet werden können):
    MCV ("Model / Controller / View"-Prinzip; Trennung von Daten, Präsentation und Steuerung), Singleton (Objekt, von der zur Laufzeit nur eine Instanz existiert), Factory (Erzeugung eines Objekts durch eine Methode statt durch einen Konstruktor), Iterator (Zeiger zum Durchlaufen von Elementen einer Liste oder Menge)
  • "Map & Registry"
    Daten werden zentral (üblicherweise in einem Singleton) verfügbar gemacht und sind überall verfügbar, z.B. für Konfigurationen
  • "Request Helper"
    speichert (und filtert) Eingabedaten, um die Anwendung von "superglobals" zu trennen
    abhängig vom Zweck können hier z.B. _POST, _GET und _COOKIE vereint werden
  • "Command"
    kapselt eine Aufgabe, sämtlicher Code (z.B. voriges Validieren der übergebenen Daten) ist von außen nicht erreichbar, "Chained Commands" sind möglich
  • Domain Model (bekannt aus C#)
    Business-Objekte kapseln Daten und das dazugehörige "Verhalten", um die Business-Logik vom reinen Datenzugriff und der Präsentation zu trennen (auch in PHP inkl. Interfaces und Methoden)
    Bei Objekt-Design und Entwicklung ist zu beachten, dass sämtliche "business cases" durchgespielt werden.
  • Front Controller
    Bildet einen zentralen "Einstiegspunkt" für eine Website, eine "index" verwaltet z.B. die komplette Website und entscheidet anhand von Parameter (oder URL-Pfaden) über den ausgegebenen Content. Für jeden "Command" (z.B. Debug, Test, Production) kann ein eigener Front Controller verwendet werden.
  • Data Mapper / Lazy Load
    Ein Data Mapper / Object Relational Mapper (ORM, für PHP z.B. Doctrine oder Propel) trennt Datenbank und Domain-Objekte, d.h. Objekte können über den Mapper direkt in die Datenbank geschrieben (oder aus ihr geholt werden)
    "Lazy Load" sorgt dafür, dass ein Objekt wirklich erst dann aus der Datenbank geladen wird, wenn man es braucht, es wird allerdings ein "Platzhalter-Objekt" gebraucht, die Verwendung ist also nur zu empfehlen, wenn man weiß, wie viele Objekte man braucht (es wird für jedes Objekt später wieder ein Query ausgeführt)

Fazit: der Schwerpunkt der Veranstaltung lag auf der Vorstellung einiger Patterns mit Betonung auf die Verwendung in PHP (bei der diese seltener zur Anwendung kommen als z.B. in C#)
sehr guter, interessanter (und lockerer) Vortrag


Ressourcen:
http://www.priebsch.de
http://inside.e-novative.de
http://inside.e-novative.de/archives/116-DLWIPC-2008-Presentation-Slides.html (komplette Präsentation)
http://kore-nordmann.de/blog/why_active_record_sucks.html (Blog von Kore Nordmann: "Why Active Record Sucks")

Programminfo:
Design patterns are the blueprints for creating (PHP) applications. In this session, we will explore patterns of enterprise application architecture. Beyond MVC, you will meet FrontControllers, RequestHelpers as well as data access patterns and learn how to apply them in PHP. We will also have a look at where and how these patterns appear in common frameworks and applications.


____________
beehave - home of humbug ... [we can't afford to be neutral]

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Rang:godmode methusalem 3. platz professioneller Sportangler Profi-Winzer (7x Hamm) Arcade-Meister, Rang 16 rainbow-cup
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    beeForum Foren-übersicht » hal9000 Seite 1 von 1
Gehe zu:  



ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Sie hören gerade..... (2008) Frederik silikonimplantate 153 Do, 17 Sep 2009, 21:48 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Understanding the PHP Object-Model boris hal9000 0 Sa, 18 Apr 2009, 11:27 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Advanced Object-Oriented JavaScript boris hal9000 0 Sa, 18 Apr 2009, 11:21 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Speaker Panel: Top Speakers from Ruby, Groovy boris hal9000 0 Sa, 18 Apr 2009, 11:16 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Metaprogramming with Ruby boris hal9000 0 Sa, 18 Apr 2009, 11:13 Letzten Beitrag anzeigen


Schreiben: nein. Antworten: nein. Bearbeiten: nein. Löschen: nein. Umfragen: nein.
phpBB © phpBB Group | impressum