Einblicke in das PHP Extension and Application Repository

get pear/
Kommentare

Michel J.Radwin schrieb in seinem Vortrag zum Einsatz von PHP bei Yahoo: PEAR is not CPAN – Stimmt! PEAR ist kein CPAN-Klon. PEAR will durch Qualität überzeugen, nicht durch Quantität. Trotzdem: PEAR wächst und wächst; selbst DSL-Nutzer treten während des Herunterladens eines kompletten PEAR-CVS-Abzugs mittlerweile den Gang zur Kaffeemaschine an.

Cache_Lite

Der Einsatz eines PHP-basierten Caches kann sich schnell als falsche Lösung von Performance-Problemen erweisen: der Cache-Code selbst benötigt eine gewisse Rechenzeit. Wenn diese Rechenzeit gleich oder gar größer der geplanten eingesparten Skriptlaufzeit ist, haben Sie nichts gewonnen. Ein mächtiger PHP-basierter Cache wie PEAR::Cache ist oft bei kleineren Skripten fehl am Platz. Cache_Lite kann dann ideal sein: geringe Codegröße, wenige Befehle; Vor- oder Nachteil, je nach Auffassung: als Cache-Speicher dienen Dateien. Für den Einsatz brauchen Sie nur drei Methoden:

 './cache',
'lifeTime' => 3600);
$cache = new Cache_Lite($options);
if(!($html = $cache->get('IndexSeite'))) {
// Cache-Daten erzeugen, z.B. hier eine
// komplette HTML-Seite
$html = ...
$cache->save($html, 'IndexSeite');
} 
echo $html;
?>

Das Skript erzeugt eine HTML-Seite. Befindet sie sich nicht im Cache, wird sie darin unter dem Namen IndexSeite gespeichert. Im Konstruktor wird mit dem $options-Parameter festgelegt, dass die Cache-Daten im Unterverzeichniss cache gespeichert werden und die Lebensdauer der Cache-Daten eine Stunde beträgt (Angabe in Sekunden). Cache_Lite besitzt einige zusätzliche Funktionen; es kann Cache-Daten gruppieren und die Cache-Daten auf Integrität prüfen.

Formulargenerierung

Ein Freund fragte mich, was denn besser ist: HTML_QuickForm oder HTML_OOH_Form; beide pictureen HTML-Formulare auf Objekte ab. Für den Programmierer erscheint ein Formular nur noch als Black-Box – er definiert zuerst, welche zulässigen Werte erwartet werden und fragt im zweiten Durchlauf die eingegebenen Werte wieder ab; kein direkter Kontakt mit HTML, Variablen- und Formularnamen, kein Stress mit client- und serverseitiger Überprüfung – alles schon eingebaut. Die Funktionsweise beider Packages ist soweit noch identisch. Die Auswahl ist von zwei Punkten abhängig: Welcher Einfluss auf die Formular-Gestaltung ist notwendig; und wie viel Zeit soll in die Einarbeitung investiert werden? HTML_Quickform ist einfach zu erlernen und schnell, aber eine Anpassung an eigene Layoutbedürfnisse ist fast nur über CSS möglich. HTML_OOH_Form orientiert sich an den Layoutmanagern und Oberflächenobjekten von Java, Qt und Gtk und ist dementsprechend mächtig. Wer mit der Desktop-Programmierung vertraut ist, wird kein Problem haben; wer bisher reine Konsolen- bzw. Webanwendungen schrieb, muss eine steile Lernkurve bewältigen. Das Package ist übrigens eine Weiterentwicklung der OOH-Forms aus der populären PHPLib.

HTML_Template_IT

Geht man nach der Anzahl der Nachfragen, ist dieses Package nach PEAR:DB am populärsten. Zwei Fragen tauchen immer wieder auf: Wie kann ich einen Template-Block behalten, obwohl ich darin keine Ersetzungen vornehme? Und wie verarbeite ich verschachtelte Blöcke? Zur ersten Frage: Wer versucht hat, das Problem mit einem setCurrentBlock() mit anschließendem parseCurrentBlock() zu erschlagen, wird wissen: es geht nicht. Deshalb exisitiert schon seit längerem dafür die Methode touchBlock(‚Blockname‘) nur wussten das wohl bisher die wenigsten.

...
$tpl = new HTML_Template_IT();
$tpl->loadTemplatefile('template.tpl');

$tpl->setCurrentBlock('blockA');
$tpl->setVariable('VariableA', 'Inhalt');
$tpl->parseCurrentBlock('blockA');

$tpl->setCurrentBlock('blockB');
$tpl->setVariable('VariableB', 'Inhalt');
$tpl->parseCurrentBlock('blockB');

$tpl->touchBlock('block2');
$tpl->touchBlock('block1');

$tpl->parse();
echo $tpl->get();

und ihre Skripte benötigen nur Rechenoperationen, die jeder Grundschüler beherrscht und den teuer bezahlten mathematischen Koprozessor im Server langweilt? Jesus M. Castagnetto hat eine Reihe an mathematischen und naturwissenschaftlichen Packages für PEAR bereitgestellt. Warum nicht mal einen Besucher-Counter mit komplexen Zahlen? Oder rechnen Sie in ihren Progammen mit Vektoren, ihr Kunde wird nie wieder ihre Skripte verschlimmbessern!? Alexander Merz ist freier Autor und Programmierer, Sie erreichen ihn unter alexmerz@php.net.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -