Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
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?

Spacer
<< zurück
eZ Components von Tobias Schlitt, Kore Nordmann
Das Entwickler-Handbuch
Buch: eZ Components

eZ Components
geb., mit CD
454 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1073-7
Pfeil 3 Die Applikationsbasis
Pfeil 3.1 Das MVC Pattern
Pfeil 3.2 Verwendete Komponenten
Pfeil 3.2.1 Url
Pfeil 3.2.2 SignalSlot
Pfeil 3.3 Der Haupt-Controller
Pfeil 3.3.1 Grundstruktur
Pfeil 3.3.2 Initialisierung
Pfeil 3.3.3 Signale verarbeiten
Pfeil 3.3.4 Read-only-Attribute
Pfeil 3.3.5 Laufen lassen
Pfeil 3.4 Die Action-Controller
Pfeil 3.4.1 Ein einfacher Action-Controller
Pfeil 3.4.2 Einträge editieren
Pfeil 3.5 Erweiterte Möglichkeiten
Pfeil 3.5.1 Ungeordnete Parameter
Pfeil 3.5.2 URLs verwalten
Pfeil 3.5.3 Signale priorisieren
Pfeil 3.5.4 Statische Signale
Pfeil 3.5.5 Lazy-Initialization für SignalSlot
Pfeil 3.6 Fazit


Galileo Computing - Zum Seitenanfang

3.2 Verwendete Komponenten Zur nächsten ÜberschriftZur vorigen Überschrift

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 ]


Galileo Computing - Zum Seitenanfang

3.2.1 Url Zur nächsten ÜberschriftZur vorigen Überschrift

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.


Galileo Computing - Zum Seitenanfang

3.2.2 SignalSlot topZur vorigen Überschrift

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
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: PHP 5.3 und MySQL 5.1






 PHP 5.3 und
 MySQL 5.1


Zum Katalog: Besser PHP programmieren






 Besser PHP
 programmieren


Zum Katalog: Webshops mit Magento






 Webshops mit
 Magento


Zum Katalog: Sichere Webanwendungen






 Sichere
 Webanwendungen


Zum Katalog: PHP 5.3 und MySQL 5.1 - Videotraining






 PHP 5.3 und
 MySQL 5.1 -
 Videotraining


Zum Katalog: Apache 2






 Apache 2


Zum Katalog: Suchmaschinen-Optimierung für Webentwickler






 Suchmaschinen-
 Optimierung
 für Webentwickler


Zum Katalog: Joomla! 1.5






 Joomla! 1.5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




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