Dokumentation
PHP
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.
Versionsübersicht
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) |
ab 7.0 | 8.2.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.
Globales include
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.
Beispiel
__autoload.php require_once(IPS_GetKernelDir() . "/scripts/globalfunction.ips.php");
Konfigurieren
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!
Beispiel
Maximale Skriptlaufzeit auf 5 Minuten erhöhen.
[PHP] max_execution_time=300