IP-Symcon verwendet als Skriptsprache PHP. Durch die Tatsache, dass PHP komplett integriert ist, können alle Vorteile von PHP genutzt werden. Die Ausführung der Skripte kann dabei parallel erfolgen.
IP-Symcon Version | Integrierte PHP Version |
---|---|
ab 1.0 | 5.1.x (x86 Thread Safe) |
ab 2.2 | 5.3.x (x86 Thread Safe) |
ab 2.5 | 5.4.x (x86 Thread Safe) |
ab 4.0 | 5.6.x (x86 Thread Safe) |
ab 5.0 | 7.2.x (x64 Thread Safe) |
ab 5.1 | 7.3.x (x64 Thread Safe) |
ab 5.5 | 7.4.x (x64 Thread Safe) |
Zusätzlich zu den normalen PHP Funktionen sind spezielle IP-Symcon Funktionen vorhanden, über die auf IP-Symcon-spezifische Einstellungen (siehe Befehlsreferenz) oder über die in IP-Symcon eingerichteten Geräte zugegriffen werden kann (siehe Modulreferenz).
Die aus PHP bekannte "php.ini" ( php.net/manual/de/ini.php ) ist in IP-Symcon ebenfalls vorhanden. IP-Symcon konfiguriert dabei die “extension” Einträge automatisch, anhand der vorhandenen Erweiterungen, die im “IP-Symcon/ext” Ordner abgelegt wurden.
Das Nutzen von PHP Erweiterungen ist nur auf einem Server möglich, welcher auf Windows läuft.
Um eine PHP Erweiterung installieren zu können, muss diese von der PHP Seite heruntergeladen werden. Zu beachten ist, dass die Version mit der in IP-Symcon genutzten PHP Version übereinstimmt. Desweiteren ist die Thread-Safe (TS) und je nach Version von IP-Symcon die 32-Bit (x86 bis 4.4) oder 64-bit (x64 ab 5.0) Variante des Kompilats zu nutzen.
Aktuell kann PHP inkl. Erweiterungen hier heruntergeladen werden: Download
Aus dem ZIP-Paket können die gewünschten Erweiterungen (ext-Ordner) in den “IP-Symcon/ext” Ordner kopiert werden. Eine PHP Erweiterung ist normalerweise an dem “php_” Prefix zu erkennen. Manche Erweiterungen benötigen evtl. noch zusätzliche "dll’s", die in den Hauptordner kopiert werden müssen. Diese Information kann dem Handbuch der jeweiligen Erweiterung entnommen werden.
IP-Symcon muss neu gestartet werden, damit die neu installierten Erweiterungen aktiv werden.
Um Funktionen, Konstanten usw. global über alle Skripte hinweg zur Verfügung zu stellen müssen diese in der Datei "__autoload.php" definiert werden. Diese muss sich im "IP-Symcon/scripts"-Ordner befinden.
Innerhalb der "__autoload.php" können dann weitere Dateien eingelesen werden.
Befehle oder Dateien via "__autoinclude.inc.php" einzulesen funktioniert auch, wird aber jedesmal bei einem Update oder Neuinstallation überschrieben.
Die PHP Funktion "auto_prepend_file" ist nicht nutzbar, da diese schon von IP-Symcon aufgerufen und genutzt wird. Diese soll/kann nur einmal Systemweit genutzt werden.
__autoload.php require_once(IPS_GetKernelDir() . "/scripts/globalfunction.ips.php");
Mögliche Konfigurationsparameter können dem PHP Handbuch entnommen werden. Eine nützliche Einstellung ist die Verlängerung der maximalen Skriptlaufzeit, falls etwaige Skripte (z.B. ShutterControl) dies notwendig machen sollten. Bei Anpassung dieser Einstellung muss beachtet werden, dass nur eine begrenzte Anzahl von PHP Skripten in IP-Symcon parallel ausgeführt werden können. Wenn durch eine lange Skriptlaufzeit alle Slots besetzt sein sollten, werden andere Skripte in eine Warteschlage abgelegt und erst verzögert aufgerufen. "Sleep"-Anweisungen sollten deshalb immer vermieden und gegen "Timer"-Anweisungen getauscht werden.
IP-Symcon muss nach einer Änderung der "php.ini" neu gestartet werden!
Maximale Skriptlaufzeit auf 5 Minuten erhöhen.
[PHP] max_execution_time=300