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 6 Datenbankanbindung
Pfeil 6.1 Abstraktion
Pfeil 6.1.1 Abstraktion der API
Pfeil 6.1.2 SQL-Abstraktion
Pfeil 6.1.3 Unterstützte RDBMS
Pfeil 6.2 Nutzung in der Applikation
Pfeil 6.3 Die Database-Komponente
Pfeil 6.3.1 PDO
Pfeil 6.3.2 Fluent-Interfaces
Pfeil 6.4 Integration von Database
Pfeil 6.4.1 Ein neues Blog Posting erstellen
Pfeil 6.4.2 Prepared-Statements
Pfeil 6.4.3 Update
Pfeil 6.4.4 Daten auslesen
Pfeil 6.5 Komplexere Abfragen
Pfeil 6.5.1 Manuelle Queries
Pfeil 6.5.2 Sub-Selects
Pfeil 6.5.3 Joins
Pfeil 6.5.4 LIMIT und ORDER BY
Pfeil 6.6 Erweiterte Möglichkeiten
Pfeil 6.6.1 Lazy-Initialization
Pfeil 6.6.2 Ein anderes RDBMS verwenden
Pfeil 6.7 Fazit


Galileo Computing - Zum Seitenanfang

6.6 Erweiterte Möglichkeiten Zur nächsten ÜberschriftZur vorigen Überschrift

Neben den bereits gezeigten Möglichkeiten des Query-Builders unterstützt die Database-Komponente noch weitere Features, die wir Ihnen nicht im Zusammenhang mit dem GP-Blog vorgestellt haben. Dies wollen wir an dieser Stelle nachholen.


Galileo Computing - Zum Seitenanfang

6.6.1 Lazy-Initialization Zur nächsten ÜberschriftZur vorigen Überschrift

Auch die Database-Komponente unterstützt Lazy-Initialization, die Initialisierung und Konfiguration beim ersten wirklichen Gebrauch (siehe Abschnitt 2.3.4, »Lazy-Initialization«). Falls mehrere verschiedene Datenbank-Handler verwendet werden, wird darüber lediglich eine Verbindung zu denjenigen Datenbanken aufgebaut, die tatsächlich benötigt werden.

class customLazyDatabaseConfiguration
{
    public static function configureObject( $instance )
    {
        switch ( $instance )
        {
            case false: // Default instance
                return ezcDbFactory::create(
                    'mysql://user:password@host/database'
                );
            case 'sqlite':
                return ezcDbFactory::create(
                    'sqlite://:memory:'
                );
        }
    }
}

Listing 6.20 Lazy Initialization der Database-Komponente

Die Klasse customLazyDatabaseConfiguration übernimmt die Konfiguration der Datenbankverbindung, sobald diese benötigt wird. Dazu bekommt sie den Namen der angefragten Instanz übergeben, false im Falle der Standardinstanz. Für jede Instanz kann die Methode configureObject() dann einen Handler zurückgeben, der für diese verwendet wird.

ezcBaseInit::setCallback(
    'ezcInitDatabaseInstance',
    'customLazyDatabaseConfiguration'
);

Mit der Methode ezcBaseInit::setCallback() wird für das Schlüsselwort, das die Database-Komponente identifiziert, die Klasse ezcInitDatabaseInstance assoziiert, die für die Konfiguration verwendet werden soll.

// Create and configure default mysql connection
$db = ezcDbInstance::get();

// Create and configure additional sqlite connection
$sb = ezcDbInstance::get( 'sqlite' );

Listing 6.21 Verwendung von Lazy Initialization

Wenn in der Applikation zum ersten Mal eine Instanz der Datenbankverbindungen verwendet werden soll, um Abfragen an diese Datenbank auszuführen, wird diese Instanz automatisch initialisiert und konfiguriert. Sollte keine Datenbankverbindung gebraucht werden, sparen Sie sich so den sonst notwendigen Aufwand hinsichtlich Speicherverbrauch und Prozessorlast.


Galileo Computing - Zum Seitenanfang

6.6.2 Ein anderes RDBMS verwenden topZur vorigen Überschrift

Um Unterstützung für ein RDBMS in Database zu integrieren, das bislang nicht unterstützt wird, gibt es eine Liste von Schritten, die gegangen werden müssen.

1. SVN checkout Zunächst benötigen Sie für die Entwicklung eines eigenen Handlers einen SVN-Checkout von eZ Components. Wie Sie diesen erhalten, wurde bereits in Abschnitt 2.1.4, »SVN«, beschrieben.
2. Neuer Handler Jede neue RDBMS-Anbindung wird durch einen eigenen ezcDbHandlerezcDbHandler repräsentiert. Der erste Schritt dahin ist, eine solche Basisklasse für das neue RDBMS zu erzeugen. Die Methoden der SQL-Abstraktion, die für andere RDBMS teilweise überschrieben werden, sollten Sie erst überschreiben, wenn Sie Probleme mit diesem Query-Typ festzustellen. Ansonsten sollte die Basisimplementierung völlig ausreichen.
3. Testen Wenn der neue Handler einmal implementiert ist, können Sie die eZ Components-Tests dafür laufen lassen. Der in den Tests verwendete DSN kann über einen Kommandozeilenparameter für den Testrunner spezifiziert werden. Falls einige der Test fehlschlagen, funktionieren die Default-Implementierungen mit dem gewünschten RDBMS nicht. Die entsprechenden Methoden in der SQL-Abstraktion müssen dann von Ihnen durch Überschreiben in ihrer Funktion angepasst werden.

Dieser Abschnitt zeigt, dass die Probleme bei der Anbindung von neuen RDBMS in den Abweichungen der Datenbanksysteme von den Standards liegen, und nur diese Abweichungen durch spezielle Implementierungen ausgeglichen werden müssen. Wollen Sie dagegen ein standardkonformes RDBMS anbinden, haben Sie also weniger Mühe.



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