von Norman Seibert, 28.02.2008

TYPO3 als Download-Center

Aus dem
t3n Magazin Nr. 11

Jetzt kaufen

PHP

$sortfield = 'tx_mitdownload_file_cat.title';
$joinTables = ', tx_mitdownload_file_cat, tx_mitdownload_cat_mm';
$joinWhere
= 'AND tx_mitdownload_cat_mm.uid_local = tx_mitdownload_files.uid AND
tx_mitdownload_cat_mm.uid_foreign = tx_mitdownload_file_cat.uid';

Listing 4

Nach diesem Umbau liefen die Suchabfragen wieder ausreichend schnell und mussten seitdem auch nicht mehr überarbeitet werden. Neben dem Suchen ist jedoch das Herunterladen der gefundenen Dateien das wesentliche Merkmal eines Download-Centers. Häufig wollten Nutzer viele Installationspakete auf einmal laden. Deshalb sollte es möglich sein, Dateien zu einem Zip-Archiv zusammenfassen zu lassen und so gebündelt herunterzuladen.

Hierzu wurde noch in PHP4 das PEAR-Package „Archive_Zip“ eingebunden, welches einen in PHP notierten Zip-Algorithmus enthält. Als Interimslösung taugte diese Variante, doch waren die nächsten Performance-Engpässe vorprogrammiert.

Die Faust im Nacken

Neben dem bereits absehbaren Flaschenhals der Archiverstellung in PHP stellte sich heraus, dass das Streaming der Dateien keine konstant hohe Download-Rate bereitstellte. Stattdessen sank die Transfergeschwindigkeit mit der Zeit, was sich erstmalig bei der 144 MB großen Freeware „visionapp Express Edition 2006“ ernsthaft bemerkbar machte.

Der radikale Schnitt erfolgte deshalb mit einem Update der TYPO3-Version auf 4.0 und dem Umstieg auf PHP5, weil letzteres eine native Unterstützung für Zip-Kompression mitbringt. Während früher zum Streaming der Dateien immer das gesamte Website-Frontend geladen werden musste, konnte jetzt das eID-Feature [2] von 4.0 genutzt werden. Mit dessen Hilfe wird TYPO3 angewiesen, das Frontend-Rendering früh abzubrechen und die Ausgabe einem eigenen Skript zu überlassen.

Seite:  1 2 3 4 5

Empfohlene Artikel