Php und Avanti
Roland Henkel
rhenkel at sbb.spk-berlin.de
Do Aug 30 15:37:22 CEST 2001
Liebe Listenleser,
ich bin hier gerade mit einer Sache fürs Intranet mit lesendem und
schreibenden Zugriff auf eine Allegro DB fertig geworden und habe - außer
ein paar Anfangsschwierigkeiten, die sich z.T. in dieser Liste wiederfinden
und wohl meiner Unbelecktheit zuzuschreiben sind, ausgesprochen gute
Erfahrung mit diesem Gespann gemacht.
Ich hatte mir eine Funktion avanti($server, $port, $job, $ergebnis)
fabriziert, $job als array, in dem die avanti-Befehlssequenz übergeben wird,
$ergebis als eine Referenz auf ein array, in das avanti seine Resultate
ablegt. Rückgabewert war entweder die Anzahl der gelieferten Sätze oder -1,
wenn die Verbindung nicht zustande kam.
Die wurde auf allen Seiten, wo sie gebraucht wurde, eingebunden, und ich
hatte mich um weiter nichts zu kümmern, als die passenden Jobs
bereitzustellen und die Ergebnisse auszuwerten.
Nach Bedarf und Belieben ließen sich weitere Funktionalitäten (neuen
Datensatz anlegen, Datensatz löschen, Index x ab Stelle y laden usw.)
kapseln, so daß man an die betreffenden Funktionen nur die aktuellen Werte
liefern müßte, das Jobgerüst aber nur einmal in der Funktion selbst
definiert werden bräuchte - was Wartung, Pflege und Fehlersuche um einiges
erleichtert.
Allegro-Datensätze lassen sich recht gut als assoziatives Array verarbeiten
mit der Kategoriennummer als key und dem Inhalt als value, so daß man sowohl
Zugriff auf einzelne Kategorien als auch die Möglichkeit hat, etwa mit
foreach Operationen über den gesamten Datensatz auszuführen.
Gemessen an acwww25 mit den über mehrere Files verstreuten Informationen,
die einen gerade in dem Fall, wo man mehrere Datenbanken parallel mit
verschieden modifizierten Scripts auf einem Server (und in einer halbwegs
zusammenhängenden und übersichtlichen Verzeichnisstruktur) laufen lassen
will, zu einigen Klimmzügen zwingen,
(davon abgesehen, daß die Modifikation von acindex.pl, regsrch.pl usw. eben
auch
eine manchmal etwas haklige Sache ist) war die Programmierung ein wahres
Vergnügen.
Konstrukte wie
<h1><?php echo $xyz; ?></h1><br>
oder
<?php
if ($x > $y) {
?>
<h1>Dies</h1><br>
<?php
}
else
{
?>
<h1>Das</h1><br>
<?php
}
?>
können einem die Arbeit wesentlich erleichtern (aber das träfe ja wohl, wenn
ich mich nicht irre, auch auf apache/mod_perl zu).
Die Parameterübergabe an die folgenden Seiten wird auch hervorragend
untersützt, entweder als &name=wert Paare oder aber als assoziatives
Standard - Array $HTTP_POST_VARS,
Funktionen wie htmlentities(), urlencode() usw. erledigen die notwendige
Zeichensubstitution - man merkt eben, das PHP von vornherein mit Hinblick
aufs WWW konzipiert wurde.
Kurz und gut, die Arbeit ging ruckzuck vonstatten, und so halte ich es für
sehr wahrscheinlich, daß auch RuckZuck davon profitiert.
MfG
R. Henkel
_________________________________________________________________
Roland Henkel Email: roland.henkel at sbb.spk-berlin.de
Staatsbibliothek zu Berlin
D-10102 Berlin
Abt. IB
Tel. (030) 2662198
_________________________________________________________________
Mehr Informationen über die Mailingliste Allegro