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 |
| 18 Setup
|  | 18.1 Architektur
|  |  | 18.1.1 DatabaseSchema
|  |  | 18.1.2 Die ConsoleTools-Komponente
|  |  | 18.1.3 Eingaben
|  |  | 18.1.4 Tabellen
|  |  | 18.1.5 Dialoge
|  |  | 18.1.6 Fortschritt
|  | 18.2 Praxis im Blog
|  |  | 18.2.1 Das aktuelle Schema auslesen
|  |  | 18.2.2 Ein Setup-Programm
|  | 18.3 Erweiterte Möglichkeiten
|  |  | 18.3.1 Beziehungen zwischen Optionen
|  |  | 18.3.2 Optionsaliase
|  | 18.4 Fazit
## 18.3 Erweiterte Möglichkeiten Trotz der hier gezeigten Fülle an Features bieten die beiden Komponenten noch mehr. Bei der Komponente DatabaseSchema haben wir bisher absichtlich darauf verzichtet, die Backend-Handler zu betrachten. Wir wollen dies nun im Rahmen der Erweiterbarkeit der Komponente tun. Auch im Bereich der Komponente ConsoleTools gibt es einige weitere Features zu entdecken, die im GP-Blog keine Verwendung fanden und auch im theoretischen Teil in Abschnitt 18.1, »Architektur«, nicht vorgestellt wurden. Darunter fallen die Konfiguration von Beziehungen zwischen den Optionen und das Anlegen eines Alias. ### 18.3.1 Beziehungen zwischen Optionen Zur Verwendung von Optionen mit der ezcConsoleInput-Klasse der ConsoleTools-Komponente haben Sie bereits Beispiele gesehen. Unberücksichtigt blieb dabei aber die Fähigkeit, Beziehungen zwischen den Optionen und in Bezug auf die Verwendung von Argumenten abzubilden. Zu diesem Zweck stellen Instanzen von ezcConsoleOption Methoden bereit, die es Ihnen erlauben, Optionen untereinander auszuschließen oder Beziehungen zu beschreiben. Als Beispiel sei angenommen, dass Sie Ihren Benutzern zwei Methoden zur Verfügung stellen, die Optionen einer Datenbankverbindung anzugeben. Zum einen soll es möglich sein, den kompletten DSN mittels der Angaben -d oder --dsn anzugeben und zum anderen soll eine fiktive Konfigurationsdatei Informationen zu verschiedenen Datenbanken bereitstellen. Neben der Angabe dieser Datei über -c oder --config muss zusätzlich die Eingabe des Datenbanknamens über -n oder --name erfolgen. Dabei schließen sich beide Varianten aus. Die zweite Variante erfordert, dass beide Parameter angegeben werden. Diesen Anwendungsfall könnten Sie so abbilden:
    $input = new ezcConsoleInput();
    $helpOption = $input->registerOption(
        new ezcConsoleOption( 'h', 'help' )
    );
    $dsnOption = $input->registerOption(
        new ezcConsoleOption(
            'd',
            'dsn',
            ezcConsoleInput::TYPE_STRING
        )
    );
    $configOption = $input->registerOption(
        new ezcConsoleOption(
            'c',
            'config',
            ezcConsoleInput::TYPE_STRING
        )
    );
    $nameOption = $input->registerOption( ;
        new ezcConsoleOption(
            'n',
            'name',
            ezcConsoleInput::TYPE_STRING
        )
    );
    $configOption->addDependency(
        new ezcConsoleOptionRule( $nameOption )
    );
    $nameOption->addDependency(
        new ezcConsoleOptionRule( $configOption )
    );
    $dsnOption->addExclusion(
        new ezcConsoleOptionRule( $configOption )
    );
    $dsnOption->addExclusion(
        new ezcConsoleOptionRule( $nameOption )
    );
    $configOption->addExclusion(
        new ezcConsoleOptionRule( $dsnOption )
    );
    $nameOption->addExclusion(
        new ezcConsoleOptionRule( $dsnOption )
    );
Listing 18.17 Beziehungen zwischen Optionen konfigurieren In diesem Beispiel wurden die soeben beschriebene Parameterkonstellation sowie eine weitere Option konfiguriert: Die Hilfeoption, die von den anderen Optionen völlig unabhängig ist. Die hervorgehobenen Zeilen im Listing definieren in den Optionen-Objekten, wie diese zueinander in Beziehung stehen. Während die Optionen für die Konfiguration und den Namen der Datenbank einander benötigen, schließen beide die Übergabe der DSN-Option aus. Übergibt nun ein Anwender eine nicht erlaubte Kombination wie beispielsweise --dsn und -c an das Programm, wirft die process()-Methode des ezcConsoleInput-Objekts eine entsprechende Ausnahme: Zum Beispiel vom Typ ezcConsoleOptionDependencyViolationException, da die -c-Option ohne passendes -n angegeben wurde. Die Verwendung von ezcConsoleOptionRule-Objekten an dieser Stelle ist überflüssig. Sie eröffnen Ihnen jedoch weitere Möglichkeiten, indem sie Beziehung auf bestimmte Werte von Parametern ermöglichen. ### 18.3.2 Optionsaliase In einigen Fällen kann es sinnvoll sein, dass Sie Optionen mit gleicher Bedeutung unter verschiedenen Namen bereitstellen. Ein Grund kann sein, dass eine Option in zwei Programmen unterschiedlich heißt und Sie es beiden Benutzergruppen erlauben wollen, sich »heimisch« zu fühlen. Ein anderer Grund könnte sein, dass Sie eine neue Ordnung für Ihre Optionen vorgesehen haben, Benutzer alter Varianten aber zunächst bei einem Update nicht »verärgern« wollen und daher vorerst die alten Optionen beibehalten. In beiden Fällen bieten Aliase, also Pseudooptionen, die lediglich auf eine echte Option verweisen, die Lösung. Objekte vom Typ ezcConsoleInput stellen Ihnen zur Erzeugung eines Alias die Methode registerAlias() zur Verfügung. Diese erwartet zunächst den Kurz- und dann den Langnamen des neuen Alias sowie als dritten Parameter das Optionen-Objekt, auf das das Alias zeigt. Ein so erzeugtes Alias reagiert genauso wie sein Referenzparameter und füllt auch dessen Wertattribut entsprechend. Sie müssen sich also um das Alias selbst keine Sorgen machen und nur mit den eigentlichen Optionen arbeiten. Analog zu der Deregistrierung echter Optionen, die vorher in diesem Kapitel gezeigt wurde, gibt es auch für Aliase eine Methode, um diese aufzuheben: unregisterAlias() erwartet als Parameter den Kurz- und Langnamen des zu zerstörenden Alias. Nach dem Aufruf kann das Alias vom Benutzer nicht mehr verwendet werden und taucht auch nicht mehr in der Hilfe auf. Achten Sie aber darauf, nicht versehentlich ein Alias mit Hilfe der Methode unregisterOption() entfernen zu wollen oder umgekehrt eine Option mit der analogen Methode für Aliase. In beiden Fällen wird die ezcConsoleInput-Instanz mit einer Ausnahme reagieren. ### 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