KONTOPRUEF-Logo
Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz

Aufruf von KONTOPRUEF-OFFLINE aus PHP heraus

Auf dieser Seite finden Sie Informationen, wie Sie KONTOPRUEF-OFFLINE aus PHP heraus aufrufen können.

Inhalt:

Hinweis zu 32-bit- und 64-bit-Systemen

Die auf dieser Seite beschriebene PHP-Extension funktioniert nur auf 32-bit-Systemen. Es gibt keine 64-bit-Version dieser PHP-Extension! Wie Sie KONTOPRUEF-OFFLINE dennoch auch auf 64-bit-Systemen mit PHP benutzen können, finden Sie auf der Linux-Spezialseite.

Vorbereitende Installation der Extension

KONTOPRUEF-OFFLINE verwendet für den Aufruf eine sogenannte "PHP Extension", also eine Erweiterung für PHP, die erst eingebaut und/oder aktiviert werden muss. Wie das funktioniert, unterscheidet sich je nach Betriebssystem. In den folgenden beiden Abschnitten erfahren Sie, wie Sie die Extension installieren bzw. aktivieren können.

Voraussetzung für die Benutzung mit PHP ist bei beiden Betriebssystemen, dass KONTOPRUEF-OFFLINE vorab ordnungsgemäß installiert wurde (d.h. unter Windows die COM-Klassen registriert sind, was das SETUP-Programm bei der Installation automatisch erledigt; unter Linux müssen alle Bibliotheken über LD_LIBRARY_PATH erreichbar sein).

Installation der Extension unter Windows

Tragen Sie in der Datei php.ini (normalerweise im PHP-Programmverzeichnis, z.B. C:\Program Files (x86)\PHP) die folgenden Zeilen nach (falls sie nicht ohnehin bereits vorhanden sind):

[COM_DOT_NET]
extension_dir="C:\Program Files (x86)\PHP\ext"
extension=php_com_dotnet.dll

(oder wo Ihre PHP-Extensions eben installiert sind). Es hängt auch etwas von der verwendeten PHP-Version ab, ob und wo die php_com_dotnet.dll-Extension vorhanden ist; bei der PHP-Version 5.5.3 funktioniert es wie oben beschrieben. Herunterladen brauchen Sie dazu nichts (außer ggf. einer neueren PHP-Version); es ist alles nötige bereits bei PHP dabei. Der obige Eintrag in der Datei php.ini dient lediglich dazu, die COM-Erweiterung zu aktivieren, die von den KONTOPRUEF-Klassen unter Windows benötigt wird.

Installation der Extension unter Linux

Da es unter Linux keinen "COM"-Mechanismus wie in Windows gibt, müssen Sie die PHP Extension zunächst hier herunterladen, je nach PHP-Version:

Wo Sie die Datei kontopruef.so auf Ihrem System ablegen, ist im Prinzip Ihnen überlassen, sie muss lediglich von PHP gefunden und benutzt werden. Wie das genau funktioniert, hängt von Ihrer PHP-Installation ab; hier gibt es z.B. das Verzeichnis /etc/php/cli-php5.3 (und cgi-php5.3 und apache2-php5.3 und alle Varianten nochmal mit ...php5.4 und ...php5.5). Je nachdem, mit welcher PHP-Variante Sie KONTOPRUEF verwenden wollen, schreiben Sie in das ext-Verzeichnis unterhalb der gewünschten PHP-Variante eine Datei namens kontopruef.ini wie folgt:

cat > /etc/php/cli-php5.3/ext/kontopruef.ini
extension=/usr/local/lib/kontopruef/kontopruef.so
^D

(bzw. wo Sie die heruntergeladene Datei kontopruef.so eben gespeichert haben). Danach wechseln Sie vom Verzeichnis ext in das Verzeichnis ext-active und erzeugen dort einen Softlink auf die soeben erstellte ini-Datei, z.B. mit

cd /etc/php/cli-php5.3/ext-active
ln -s /etc/php/cli-php5.3/ext/kontopruef.ini

Danach muss das Programm, das PHP verwendet (z.B. Apache im Fall des apache2-Moduls), neu gestartet werden. Im Kontext des jeweiligen Programms muss die Environment-Variable LD_LIBRARY_PATH auf die KONTOPRUEF-Bibliotheken zeigen; fügen Sie daher ggf. in das Startskript noch den Befehl export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/kontopruef o.ä. ein.

Die genauen Dateipfade können auf Ihrem System von den oben genannten Verzeichnissen durchaus abweichen! Prüfen Sie also erst, wie PHP auf Ihrem System installiert ist, und verwenden Sie dann die geeigneten Verzeichnisse und Konfigurationsdateien.

Download der Klassen

Die Deklaration der KONTOPRUEF-Klassen für PHP können Sie entweder als kontopruef-php.zip oder als kontopruef-php.tar.gz herunterladen (der Inhalt ist identisch; es unterscheiden sich nur die Packverfahren).

Es werden die Klassen KtoUpdate, KtoPruef, KtoRead, KtoSepa und KtoArbeit zur Verfügung gestellt. Angesichts des kurzen Zeitraums, in dem die KtoDtaus-Funktionen noch benutzbar wären, wird hierfür keine PHP-Klasse mehr zur Verfügung gestellt.

Verwendung der Klassen

Nachdem Sie die Klassendeklarationen eingebunden haben, können Sie direkt aus PHP heraus alle KONTOPRUEF-Funktionen aufrufen. Ein Beispiel zum Schreiben einer SEPA-Basislastschrift finden Sie hier (funktioniert unter Windows genauso wie unter Linux):

<?php

date_default_timezone_set('Europe/Berlin');

require_once('KtoSepa.php');

function print_result($func) {
  global $xml, $result;
  $errmsg = $xml->GetErrorMessage($result);
  $lasterror = $xml->GetLastError();
  echo "$func: Error $result ($errmsg): $lasterror\n";
}

$xml = new KtoSepa();

$result = $xml->OpenDebit(0, 'Testlastschriften', 'Einlieferer', '', 'Auftraggeber',
  'DE08760100850000001856', 'PBNKDEFF760', 'DE98ZZZ09999999999');
print_result('OpenDebit');

$result = $xml->WriteDebit(0, 0, 123.45, 'Testkunde', 'DE08760100850000001856', 'PBNKDEFF760',
  '', '102013139999', 'Rechnung 102013139999 vom 02.09.13', 'K999', '2013-09-01');
print_result('WriteDebit');

$result = $xml->CloseDebit('C:\temp\test.xml'); // bzw. '/tmp/test.xml' unter Linux
print_result('CloseDebit');

?>

Wichtiger Hinweis

Nacheinander aufgerufene Funktionen, die voneinander abhängen, müssen im selben PHP-Kontext aufgerufen werden, z.B.

Es funktioniert also nicht, dass Sie z.B. im Apache-Modul von PHP auf einer Website mit KtoSepa.OpenDebit eine Lastschriftdatei öffnen und dann viel später von einer anderen Website aus mit KtoSepa.WriteDebit eine Zahlung in diese Datei schreiben, weil PHP unterdessen von Apache längst ent- und neu geladen wurde, so dass die beiden Funktionen in einem völlig unterschiedlichen Kontext laufen. In diesen Fällen müssen Sie zunächst alle Daten in einer eigenen Session speichern und schließlich "in einem Rutsch" an KtoSepa übergeben.

Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz