Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Vorwort
1 Einleitung
2 Einführung in eZ Components
3 Die Applikationsbasis
4 Fehlerbehandlung und Debugging
5 Konfiguration
6 Datenbankanbindung
7 ORM mit PersistentObject
8 Template
9 Übersetzung
10 Benutzereingaben validieren
11 Authentifizierung
12 Bildverarbeitung
13 Archive und Dateien
14 Mail
15 Logging
16 Diagramme
17 Feeds und Caching
18 Setup
A Inhalt der Buch-CD
Stichwort
Download: - ZIP, ca. 2,7 MB
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> /eZ Components | vor >>
eZ Components von Tobias Schlitt, Kore Nordmann Das Entwickler-Handbuch
eZ Components geb., mit CD 454 S., 39,90 Euro Galileo Computing ISBN 978-3-8362-1073-7 |
| 3 Die Applikationsbasis
|  | 3.1 Das MVC Pattern
|  | 3.2 Verwendete Komponenten
|  |  | 3.2.1 Url
|  |  | 3.2.2 SignalSlot
|  | 3.3 Der Haupt-Controller
|  |  | 3.3.1 Grundstruktur
|  |  | 3.3.2 Initialisierung
|  |  | 3.3.3 Signale verarbeiten
|  |  | 3.3.4 Read-only-Attribute
|  |  | 3.3.5 Laufen lassen
|  | 3.4 Die Action-Controller
|  |  | 3.4.1 Ein einfacher Action-Controller
|  |  | 3.4.2 Einträge editieren
|  | 3.5 Erweiterte Möglichkeiten
|  |  | 3.5.1 Ungeordnete Parameter
|  |  | 3.5.2 URLs verwalten
|  |  | 3.5.3 Signale priorisieren
|  |  | 3.5.4 Statische Signale
|  |  | 3.5.5 Lazy-Initialization für SignalSlot
|  | 3.6 Fazit
## 3.2 Verwendete Komponenten Für die Basis des Galileo-Press-Blogs werden zwei eZ Components verwendet: Url und SignalSlot. Die Url-Komponente erlaubt das Verarbeiten und Erzeugen von lesbaren (HTTP-)URLs, ohne komplizierte String-Operationen mit PHP-Bordmittel auszuführen. Bei SignalSlot handelt es sich um eine Komponente, welche die Integration verschiedener (nicht unbedingt bekannter) Teile einer Applikation ermöglicht. Das Grundkonzept der Komponente erinnert stark an das Subject-Observer-Entwurfsmuster (siehe Kasten weiter unten). Die Implementierung dieser Komponente ist der gleichnamigen Bibliothek aus dem Qt-Framework nachempfunden. [http://trolltech.com/products/qt ] ### 3.2.1 Url PHP selbst bietet bereits eine Möglichkeit, auf Daten, die in einer URL übergeben wurden, direkt zuzugreifen: Das super-globale $_GET-Array. Allerdings hat die Verwendung von GET-Parametern einige Nachteile, wenn es um die Benutzbarkeit einer Applikation geht. Zum einen sind URLs, die GET-Parameter enthalten, für nicht technisch versierte Benutzer nicht intuitiv. Gravierender ist jedoch der Nachteil, den man bei der Indexierung durch Suchmaschinen erleidet. Früher verweigerten viele Suchmaschinen die Indexierung von Seiten, deren URLs GET-Parameter erhielten, da sie davon ausgingen, solche Seiten seien zu 100 Prozent dynamisch generiert. Bis heute vergeben die meisten Suchmaschinen auf solche URLs ein schlechteres Ranking, da aufgrund der Dynamik das Wiederauffinden nicht garantiert ist. Aus diesem Grund wird im GP-Blog statt der GET-Methode die sogenannte Path-Info als Parameter-Transporter verwendet. Die Path-Info ist eine Erweiterung der eigentlichen URL durch einen physikalisch nicht existenten Pfad, der hinter der aufzurufenden Datei eingehängt wird. PHP selbst erlaubt zwar den Zugriff auf die Path-Info eines Requests über $_SERVER[»PATH_INFO«], stellt aber keine Möglichkeiten bereit, diese Information komfortabel zu verarbeiten. Deshalb wird in der Beispielanwendung auf die Url-Komponente der eZ Components zurückgegriffen, mit der sowohl die Verarbeitung der Parameter als auch die Zusammenstellung neuer URLs erledigt wird. Zu beachten ist hierbei, dass die Komponente einen Rewrite-Mechanismus im Webserver voraussetzt, worüber Sie bereits Näheres in Abschnitt 1.3.4, »Rewriting einrichten«, erfahren haben. ### 3.2.2 SignalSlot SignalSlot verallgemeinert den Ansatz des Subject-Observer-Patterns (siehe Kasten). Die Idee der Komponente ist die Bereitstellung sogenannter Slots (zu deutsch »Schlitze«). Ein oder mehrere Objekte können an einem solchen Slot lauschen und werden benachrichtigt, sobald ein Signal eintrifft, das auf den Namen des Slots passt. Ein solches Signal kann nun von einer beliebigen Stelle der Applikation abgesetzt werden. Es ist also anderen Objekten möglich, durch Senden eines Signals die lauschenden Objekte zu benachrichtigen. Das sendende Objekt weiß hierbei nicht, ob und wenn ja, welche Objekte benachrichtigt werden. Genauso weiß ein Objekt beim Empfangen eines Signals nicht, woher das Signal gesendet wurde, außer der Sender teilt dies beim Senden explizit als Parameter mit. Ein Signal kann beliebige Parameter mit sich führen, die der entsprechende Slot verarbeiten soll. Diese Architektur erlaubt es, dass verschiedene Komponenten einer Applikation miteinander kommunizieren, ohne konkrete Kenntnis voneinander zu haben. Einsatzgebiete für diese Technik sind meist Plug-in-Schnittstellen, bei denen den einzelnen Komponenten nicht bekannt ist, welche anderen Komponenten installiert sind und welche Informationen diese benötigen.
Das Subject-Observer-Pattern
Das Subject-Observer-Pattern ist ebenfalls eines der bekannteren Entwurfsmuster beim objektorientierten Programmentwurf. Sein Zweck ist es, ein Objekt (das Subject) durch ein oder mehrere andere Objekte (die Observer) beobachten zu lassen. Beobachten bedeutet hier, dass die Observer über bestimmte Aktionen und Status-Wechsel des Subjekts benachrichtigt werden. Ein typisches Beispiel ist die Benachrichtigung eines Cache-Objekts darüber, dass sich die gespeicherten Daten geändert haben, damit dieses den entsprechenden Cache leeren kann. Die SignalSlot-Komponente stellt einen ähnlichen Mechanismus bereit.
Im Falle des Galileo-Press-Blogs wird SignalSlot dazu eingesetzt, vom Haupt-Controller auf die einzelnen Action-Controller zu verweisen (das sogenannte Dispatching). Der Haupt-Controller extrahiert aus der aufgerufenen URL das zu sendende Signal (die Aktion) und sendet es. Er weiß dabei nicht, welcher Action-Controller die Behandlung des Signals übernimmt. Im weiteren Verlauf sendet der angesprochene Action-Controller seinerseits Signale, um verschiedene Ergebnisse auszulösen. Ein Signal startet beispielsweise die View-Komponente, ein anderes dient der Behandlung aufgetretener Fehler oder der Weiterleitung auf eine andere Aktion. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchempfehlungen
| PHP 5.3 und MySQL 5.1
| Besser PHP programmieren
| Webshops mit Magento
| Sichere Webanwendungen
| PHP 5.3 und MySQL 5.1 - Videotraining
| Apache 2
| Suchmaschinen- Optimierung für Webentwickler
| Joomla! 1.5
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de