[PHP] Pipeline-Datenstruktur
Verfasst: 09.09.2011, 23:40
Guten Abend!
ich bins wieder :) Die Webentwicklung geht weiter voran und ich bin beim Arbeiten an der Shell. Ich bin ein Fan der Bash-Shell und ein wichtiges Feature der Shell ist die Pipe. Nun hatte ich vor, meine Webseite generell nach MVC/MVP aufzuteilen mit der Verwendung einer einfachen Template-Engine. Damit die Webseite interaktiv und gestylt wird, müssen die benötigten Dateien in der Regel eine Reihe von Verarbeitungsschritten durchgehen.
Zum Beispiel Javascript:
jquery (90kb) + jquery-ui (206kb) + jquery-plugins (?kb)
Angenommen, ich brauche nur die ersten beiden genannten Dateien, dann komme ich auf 296kb. Nach der Komprimierung mit dem Php Packer reduziert sich das ganze auf 184kb, sprich knapp 40%. Mit einer Komprimierung mit gzcompress sinkt die Dateigröße auf 76kb.
Das gleiche mache ich mit den Stylesheets (reset.css + olive.css + navigation.css + layout3.css).
Lange Rede, kurzer Sinn: Ich hab die ganze Geschichte mit Pipes realisiert. Und ich wollte fragen, ob es an dieser Stelle übertrieben ist. Oder habt ihr einen Vorschlag, wie man sowas verbessern könnte?
Mein derzeitiger Stand:
ich bins wieder :) Die Webentwicklung geht weiter voran und ich bin beim Arbeiten an der Shell. Ich bin ein Fan der Bash-Shell und ein wichtiges Feature der Shell ist die Pipe. Nun hatte ich vor, meine Webseite generell nach MVC/MVP aufzuteilen mit der Verwendung einer einfachen Template-Engine. Damit die Webseite interaktiv und gestylt wird, müssen die benötigten Dateien in der Regel eine Reihe von Verarbeitungsschritten durchgehen.
Zum Beispiel Javascript:
jquery (90kb) + jquery-ui (206kb) + jquery-plugins (?kb)
Angenommen, ich brauche nur die ersten beiden genannten Dateien, dann komme ich auf 296kb. Nach der Komprimierung mit dem Php Packer reduziert sich das ganze auf 184kb, sprich knapp 40%. Mit einer Komprimierung mit gzcompress sinkt die Dateigröße auf 76kb.
Das gleiche mache ich mit den Stylesheets (reset.css + olive.css + navigation.css + layout3.css).
Lange Rede, kurzer Sinn: Ich hab die ganze Geschichte mit Pipes realisiert. Und ich wollte fragen, ob es an dieser Stelle übertrieben ist. Oder habt ihr einen Vorschlag, wie man sowas verbessern könnte?
Mein derzeitiger Stand:
Code: Alles auswählen
$pipeline = new Pipeline();
$pipeline
->input("jquery.js")
->input("jquery-ui.js")
;
$pipeline
/** Eingabedaten werden als Dateinamen betrachtet und die Inhalte dieser Dateien werden ausgegeben auf die nachfolgenden Pipes */
->utilize(new ExpandToFileContent())
/** Eingabedaten werden zu einem einzelnen Strom zusammengefasst */
->utilize(new SingleInput())
/** Eingabedaten werden mit dem PHP-Packer komprimiert */
->utilize(new JavascriptCompressor())
/** Allgemeine Stringkonvertierung mit gzcompress */
->utilize(new StringConverter(gzcompress))
;
/** Pipeline wird durchgelaufen */
$pipeline->start();
/** Endergebnis der Pipeline */
$result = $pipeline->output();
if (!is_null($result) && is_array($result))
{
$writer = new Writer();
$writer->write($result[0]);
}