Ignore:
Timestamp:
08/15/10 17:32:39 (22 months ago)
Author:
vain
Message:
  • added some lines to the dev manual
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/manuals/developer/manual/de/kapitel05-framework.asc

    r4575 r4577  
    325325===== Dependency Injection und Inversion of Control 
    326326 
    327 Für eine umfassende Beschreibung des Dependecy Injection Verfahrens verweise ich auf den Artikel von Martin Fowler 
    328 http://martinfowler.com/articles/injection.html. 
     327Für eine umfassende Beschreibung des Dependecy Injection Verfahrens verweise ich auf den Artikel "Inversion of 
     328Control Containers and the Dependency Injection pattern" footnote:[http://martinfowler.com/articles/injection.html] 
     329von Martin Fowler. 
    329330 
    330331=== Die Komponenten des Frameworks 
     
    334335Bootstrapping bedeutet umgangssprachlich "Sich an den eigenen Haaren aus dem Sumpf ziehen". 
    335336Diese Metapher geht auf eine Geschichte des Barons von Münchhausen zurück, der sich und sein Pferd 
    336 allein durch die inneren Kräfte seines Arms aus dem Morast befreite. 
     337allein durch die inneren Kräfte seines Arms aus dem Morast befreite, indem er sich an den Haaren herauszog. 
    337338 
    338339Ein meiner Meinung nach besseres Bild für den Startprozess ist, das Anstoßen des ersten Dominosteins. 
     
    387388Schwieriger wird es, wenn man Dateien nach ihrer Zugehörigkeit zu einer logischen Komponente ablegen möchte. 
    388389Nun muss der Name der Komponente mit in den Klassennamen, um ihn in einen Dateinamen umwandeln zu können. 
    389 Dies führt zu komponentenbasiertem Autoloading.  
     390Dies führt zu komponentenbasiertem Autoloading. 
    390391 
    391392Ein weiteres Problem ergibt sich, wenn in einer Datei mehrere Klassen untergebracht sind. 
     
    401402mit Klassennamen als Schlüsseln und Pfad- und Dateinamen als Werten. 
    402403 
    403 Merksätze zum Thema Autoloading: Autoloading ist für Bequeme und Bequemlichkeit bringt Probleme. 
     404Merksatz zum Thema Autoloading: Autoloading ist für Bequeme und Bequemlichkeit bringt Probleme. 
    404405 
    405406Clansuite verwendet ein zweistufiges Autoloading. Im ersten Schritt wird versucht die Datei anhand des Klassennames zu finden. 
    406407Sollte dies erfolgreich sein, wird die Klassenname-Datei-Beziehung in eine Autoloading Map eingetragen. Bei jedem weiteren Autoloading 
    407 erfolgt dann nur noch ein Lookup und keine Auflösung des Klassennames in den Dateinamen. Die Namensauflösungsstrategie deaktiviert sich  
    408 also schrittweise und es wird ein reiner Lookup-Betriebsmodus erreicht wird. 
     408erfolgt dann nur noch ein Lookup und keine Auflösung des Klassennames in den Dateinamen. Die Namensauflösungsstrategie deaktiviert sich 
     409also schrittweise und geht in einen reinen Lookup-Betriebsmodus über. 
    409410 
    410411==== Clansuite_HttpRequest 
     
    458459.Bereitstellung der REST-Funktionalität 
    459460Eine weitere wesentliche Aufgabe ist die Bereitstellung der REST-Funktionalität. Die Abkürzung REST steht für 
    460 den Fachbegriff Representational State Transfer. REST ist ein Softwarearchitekturstil, welcher ein 
     461den Fachbegriff "Representational State Transfer". REST ist ein Softwarearchitekturstil, welcher ein 
    461462resourcenorientiertes Denken forciert und für verteilte Applikationen entwickelt wurde. Es ist absichtlich 
    462463sehr einfach gehalten und basiert nur auf wenigen Grundprinzipien und wohldefinierten Methoden. Der Begriff 
    463 wurde durch die Dissertation von Roy Fielding aus dem Jahr 2000 eingeführt. Fielding ist einer der 
    464 Hauptautoren der Spezifikation des HTTP-Protokolls. Er ruft nochmals in Errinerung was die bestehende 
    465 Mechanismen und Protokolle des WWW (z. B. HTTP) teilweise schon definieren. REST ist neben den Alternativen 
    466 XML-RPC und SOAP eine Methode zur Umsetzung von Webservices und damit ein 
     464wurde durch die Dissertation von Roy Fielding aus dem Jahr 2000 eingeführt 
     465footnote:[Fielding, Roy Thomas: Architectural Styles and the Design of Network-based Software Architectures. 
     466PhD Thesis, University of California, Irvine, 2000, http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm]. 
     467Fielding ist einer der Hauptautoren der Spezifikation des HTTP-Protokolls. Er ruft nochmals in Errinerung was 
     468die bestehende Mechanismen und Protokolle des WWW (z. B. HTTP) teilweise schon definieren. REST ist neben den 
     469Alternativen XML-RPC und SOAP eine Methode zur Umsetzung von Webservices und damit ein 
    467470Schlüsselwort des Web2.0. 
    468471 
     
    502505    Zwischendiensten, wie z. B. Caches, Proxies oder Gateways eingesetzt werden. 
    503506 
    504 footnote:[Fielding, Roy Thomas: Architectural Styles and the Design of Network-based Software Architectures. 
    505 PhD Thesis, University of California, Irvine, 2000, http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm] 
    506507footnote:[Atom Publishing Protocol (RFC5023), http://www.ietf.org/rfc/rfc5023.txt] 
    507508footnote:[HTTP/1.1 Specifiction (RFC 2616), http://www.w3.org/Protocols/rfc2616/rfc2616.html] 
     
    574575[source, php] 
    575576--------------------------------------------------------------------- 
    576 # Das HTML-Formular beinhaltet ein Name Attribut mit mehrdimensionalem Aufbau. 
     577# Das HTML-Formular beinhaltet ein Name-Attribut mit mehrdimensionalem Aufbau. 
    577578# Dadurch werden die Daten als mehrdimensionales Array an den Server geschickt. 
    578 <input type="text" name="formular[1][variablename]" value="0"/><br /> 
     579<input type="text" name="formular[1][variablename]" value="0"/> 
    579580 
    580581# Das Array hat die folgende Struktur: 
    581582array( [formular] => array ( [1] => array( [variablenname] => 'wert' ) ) ) 
    582583 
    583 # Der Zugriff erfolgt über $request mittels ArrayAccess: 
     584# Der Zugriff auf die Inhalte von $request kann direkt über ArrayAccess durchgeführt werden: 
    584585$variablenname = $request['formular']['1']['variablenname']; 
    585586--------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.