In 4D können Sie direkt PHP Skripte ausführen. So können Sie die Vorteile von "utility libraries" nutzen, die über PHP verfügbar sind. Diese libraries bieten im Einzelnen folgende Funktionalitäten:
- Ciphering (MD5) und Hashing
- ZIP Dateien verwalten
- Bilder verwalten
- LDAP Zugriff
- COM Zugriff (Steuern von MS Office Dokumenten), etc.
Diese Liste ist nur ein Auszug. Eine komplette Übersicht über die PHP Module, die standardmäßig mit 4D verfügbar sind, finden Sie im Abschnitt DELETE USER FORM. Beachten Sie, dass Sie auch zusätzliche eigene Module installieren können.
Um ein PHP Skript bzw. eine Funktion auszuführen, müssen Sie den Befehl PHP Execute verwenden. 4D enthält standardmäßig Version 5.4.11 von PHP. Ausgeführte Skripte müssen mit dieser Version und den installierten Modulen kompatibel sein.
Eine ausführliche Beschreibung der PHP Befehle und Syntax finden Sie in der umfangreichen PHP Dokumentation, die Sie über Internet abrufen können. Hier ein paar Beispiele:
http://us.php.net/manual/en/
http://phpdeveloper.org/
http://php.start4all.com/
http://php.resourceindex.com/Documentation/
4D bietet einen PHP Interpreter, kompiliert in FastCGI. Das ist ein Kommunikationsprotokoll vom Typ Client-Server zwischen einer Anwendung und einem PHP Interpreter.
Der PHP Interpreter verwaltet eine Reihe von Ausführungsprozessen im System, genannt "Kindprozesse". Diese Prozesse dienen zum Bearbeiten von Anfragen, die 4D sendet. Die Ausführung der Anfragen läuft synchron. Aus Optimierungsgründen können standardmäßig fünf Kindprozesse gleichzeitig laufen. Dieser Wert lässt sich über die Datenbank-Eigenschaften bzw. den Befehl SET DATABASE PARAMETER verändern. Auf Mac OS werden diese Prozesse bei der ersten Anfrage gestartet und vom PHP Interpreter dauerhaft beibehalten. Unter Windows erstellt 4D die Prozesse nach Bedarf und recycelt sie, falls notwendig. 4D unterstützt automatisch die Verwaltung von Prozessen, die der PHP Interpreter standardmäßig liefert, wie Starten und Schließen.
Hinweis: Endet das 4D Programm unerwartet, während noch PHP Kindprozesse aktiv sind, müssen Sie diese über das Systemfenster zur Prozessverwaltung von Hand löschen.
Nachfolgende Übersicht zeigt die 4D/PHP Struktur von 4D:
![](../../picture/187465/pict187465.en.png)
Diese Architektur arbeitet mit einem System interner Anfragen, die 4D an eine vordefinierte TCP Adresse sendet (IP Adresse und Port Nummer). Diese Adresse lässt sich bei Bedarf über die Datenbank-Eigenschaften oder über den Befehl SET DATABASE PARAMETER ändern, z.B. wenn auf demselben Rechner mehrere PHP Interpreter ausgeführt werden.
Warnung: Starten Sie zwei 4D Anwendungen auf dem gleichen Rechner und führen in beiden PHP Anweisungen aus (via PHP Execute), müssen Sie unbedingt die gelisteten Ports des Interpreters FastCGI PHP ändern, so dass Sie für jede Anwendung einen anderen benutzen. Andernfalls werden PHP Anweisungen u.U. mit Fehlern und nicht vorhersehbar ausgeführt und können sogar Ihre 4D Anwendung einfrieren.
Sie können auch einen anderen PHP Interpreter verwenden als 4D zur Verfügung stellt. So können Sie bei einem Update von 4D denselben PHP Interpreter beibehalten. Außerdem können Sie alle gewünschten eigenen Module installieren - Mit dem in 4D enthaltenen Interpreter können Sie keine eigene PHP Datei verwenden. Sie benötigen einen externen Interpreter, wenn Sie andere PHP Konfigurationen als die standardmäßig mitgelieferten verwenden wollen. Ein eigener PHP Interpreter muss zwei Bedingungen erfüllen:
- Er muss in FastCGI kompiliert sein,
- Er muss auf demselben Rechner wie 4D liegen.
Wollen Sie einen eigenen PHP Interpreter verwenden, müssen Sie diesen lediglich so konfigurieren, dass er auf eine spezifische Adresse und TCP Port anspricht und den von 4D aufgerufenen internen Interpreter deaktivieren. Diese Parameter können Sie entweder über die Datenbankeinstellungen oder für die Sitzung über den Befehl SET DATABASE PARAMETER setzen. Dann müssen Sie natürlich das Starten und Arbeiten des Interpreters selbst verwalten.
Die Initialisationsdatei php.ini liegt im Ordner Resources der Datenbank. Über die php.ini Datei können Sie insbesondere den Speicherort der PHP Erweiterungen deklarieren.
Ist sie beim ersten Aufruf nicht vorhanden, erstellt 4D die Datei mit den passenden Konfigurationsoptionen.
Die php.ini Datei des externen Interpreters muss folgende Eingänge enthalten:
Weitere Informationen zur Konfiguration eigener php.ini Dateien finden Sie in den 4D Kommentaren innerhalb der php.ini Datei.