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 9 Übersetzung
Pfeil 9.1 Komponente ezcTranslation
Pfeil 9.2 Qt Linguist
Pfeil 9.2.1 Das Dateiformat
Pfeil 9.2.2 Das Programm
Pfeil 9.3 Einbindung in die Applikation
Pfeil 9.3.1 Template-Funktion
Pfeil 9.3.2 Einfügen nicht vorhandener Übersetzungen
Pfeil 9.3.3 Templates anpassen
Pfeil 9.3.4 Parametrisierte Übersetzungen
Pfeil 9.3.5 Übersetzen
Pfeil 9.3.6 Filter
Pfeil 9.4 Caching von Übersetzungen
Pfeil 9.5 Fazit


Galileo Computing - Zum Seitenanfang

9.4 Caching von Übersetzungen topZur vorigen Überschrift

Sie mögen die nicht ganz unberechtigte Befürchtung hegen, dass das Erfragen der Übersetzungen bei jedem Request an Ihre Applikation aus den XML-Übersetzungsdateien einen spürbaren Performance-Nachteil mit sich bringt.

In Abschnitt 1.2.2, »Was sind eZ Components?«, wurde das Konzept der Tieins vorgestellt, mit denen sich Komponenten verknüpfen beziehungsweise ihre Funktionalitäten kombinieren lassen. Für die Beschleunigung der Translation-Komponente existiert das ezcTranslationCacheTiein, das ein Translation-Cache-Backend zur Verfügung stellt, mit dem sich die einmal abgefragten Übersetzungen cachen lassen.

Das folgende Beispiel integriert das Cache-Backend in die Applikation:

try
{
    $cacheObj = new ezcCacheStorageFileArray(
        dirname( __FILE__ ) . '/../cache/translations'
    );
    $cacheBackend = new ezcTranslationCacheBackend( $cacheObj );

    $manager = new ezcTranslationManager( $cacheBackend );
    $translationContext = $manager->getContext(
        $locale, $context
    );

    $translated = $translationContext->getTranslation( $string, $replacements );
}
catch ( ezcTranslationException $e )
{
    // Use TSBackend
    // ...
}

Listing 9.13 Übersetzungen cachen

Um dies zu erreichen, initialisieren wir das Cache-Backend, bevor auf das TSBackend zugegriffen wird. Wir verwenden es nur dann, falls die Übersetzung im Cache-Backend nicht zu finden ist. Dies war in obigem Beispiel an der Position des Kommentars // Use TSBackend der Fall.

Die Verwendung des Cache-Backends gestaltet sich sehr ähnlich dem bereits bekannten TSBackend. Allerdings muss hier ein Pfad für den Cache angegeben werden, der durch den Webserver schreibbar sein sollte, anstelle des nur lesbaren Pfades zu den Übersetzungsdateien. In dem Fall, dass die Übersetzung nicht oder nur in den Dateien gefunden wurde, soll der Cache aktualisiert werden. Dazu fügen wir den folgenden Code nach dem Erhalt der Übersetzung hinzu.

// Update translation cache
$reader = $fileBackend;
$reader->initReader( $locale );

$writer = $cacheBackend;
$writer->initWriter( $locale );

foreach ( $reader as $contextName => $contextData )
{
    $writer->storeContext( $contextName, $contextData );
}

Listing 9.14 Übersetzungen in den Cache schreiben

Um alle Übersetzungen aus einem Backend auszulesen, muss ein Translation-Reader auf diesem initialisiert werden. Da aus dem TSBackend gelesen werden soll, wird dieser auf dem $fileBackend initialisiert. Auf dem $cacheBackend wird der Translation-Writer initialisiert, da in den Cache die im TSBackend vorhandenen Übersetzungen gespeichert werden sollen. Anschließend kann über die Kontexte aus $reader mittels foreach() iteriert werden und in $writer gespeichert werden.

Bei dem darauf folgenden Request werden die Übersetzungen nun erheblich schneller aus PHP-Arrays ausgelesen und der Applikation zur Verfügung gestellt. Wenn von einem Übersetzer Änderungen an den Übersetzungsdateien vorgenommen worden sind, müssen nun aber die Caches geleert werden, was entweder durch ein einfaches Entfernen aller Dateien in cache/translations möglich ist oder durch die Methoden, welche die Cache-Komponente dafür zur Verfügung stellt und somit eine bessere Kontrolle über die Cache-Einträge bietet.



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