- Timestamp:
- 08/15/10 17:32:39 (22 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/manuals/developer/manual/de/kapitel05-framework.asc
r4575 r4577 325 325 ===== Dependency Injection und Inversion of Control 326 326 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. 327 Für eine umfassende Beschreibung des Dependecy Injection Verfahrens verweise ich auf den Artikel "Inversion of 328 Control Containers and the Dependency Injection pattern" footnote:[http://martinfowler.com/articles/injection.html] 329 von Martin Fowler. 329 330 330 331 === Die Komponenten des Frameworks … … 334 335 Bootstrapping bedeutet umgangssprachlich "Sich an den eigenen Haaren aus dem Sumpf ziehen". 335 336 Diese 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 .337 allein durch die inneren Kräfte seines Arms aus dem Morast befreite, indem er sich an den Haaren herauszog. 337 338 338 339 Ein meiner Meinung nach besseres Bild für den Startprozess ist, das Anstoßen des ersten Dominosteins. … … 387 388 Schwieriger wird es, wenn man Dateien nach ihrer Zugehörigkeit zu einer logischen Komponente ablegen möchte. 388 389 Nun 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. 390 Dies führt zu komponentenbasiertem Autoloading. 390 391 391 392 Ein weiteres Problem ergibt sich, wenn in einer Datei mehrere Klassen untergebracht sind. … … 401 402 mit Klassennamen als Schlüsseln und Pfad- und Dateinamen als Werten. 402 403 403 Merks ätzezum Thema Autoloading: Autoloading ist für Bequeme und Bequemlichkeit bringt Probleme.404 Merksatz zum Thema Autoloading: Autoloading ist für Bequeme und Bequemlichkeit bringt Probleme. 404 405 405 406 Clansuite verwendet ein zweistufiges Autoloading. Im ersten Schritt wird versucht die Datei anhand des Klassennames zu finden. 406 407 Sollte 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.408 erfolgt dann nur noch ein Lookup und keine Auflösung des Klassennames in den Dateinamen. Die Namensauflösungsstrategie deaktiviert sich 409 also schrittweise und geht in einen reinen Lookup-Betriebsmodus über. 409 410 410 411 ==== Clansuite_HttpRequest … … 458 459 .Bereitstellung der REST-Funktionalität 459 460 Eine 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 ein461 den Fachbegriff "Representational State Transfer". REST ist ein Softwarearchitekturstil, welcher ein 461 462 resourcenorientiertes Denken forciert und für verteilte Applikationen entwickelt wurde. Es ist absichtlich 462 463 sehr 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 464 wurde durch die Dissertation von Roy Fielding aus dem Jahr 2000 eingeführt 465 footnote:[Fielding, Roy Thomas: Architectural Styles and the Design of Network-based Software Architectures. 466 PhD Thesis, University of California, Irvine, 2000, http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm]. 467 Fielding ist einer der Hauptautoren der Spezifikation des HTTP-Protokolls. Er ruft nochmals in Errinerung was 468 die bestehende Mechanismen und Protokolle des WWW (z. B. HTTP) teilweise schon definieren. REST ist neben den 469 Alternativen XML-RPC und SOAP eine Methode zur Umsetzung von Webservices und damit ein 467 470 Schlüsselwort des Web2.0. 468 471 … … 502 505 Zwischendiensten, wie z. B. Caches, Proxies oder Gateways eingesetzt werden. 503 506 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]506 507 footnote:[Atom Publishing Protocol (RFC5023), http://www.ietf.org/rfc/rfc5023.txt] 507 508 footnote:[HTTP/1.1 Specifiction (RFC 2616), http://www.w3.org/Protocols/rfc2616/rfc2616.html] … … 574 575 [source, php] 575 576 --------------------------------------------------------------------- 576 # Das HTML-Formular beinhaltet ein Name Attribut mit mehrdimensionalem Aufbau.577 # Das HTML-Formular beinhaltet ein Name-Attribut mit mehrdimensionalem Aufbau. 577 578 # 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"/> 579 580 580 581 # Das Array hat die folgende Struktur: 581 582 array( [formular] => array ( [1] => array( [variablenname] => 'wert' ) ) ) 582 583 583 # Der Zugriff erfolgt über $request mittels ArrayAccess:584 # Der Zugriff auf die Inhalte von $request kann direkt über ArrayAccess durchgeführt werden: 584 585 $variablenname = $request['formular']['1']['variablenname']; 585 586 ---------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.
