ich würde gerne im IPS eine eigene Klasse erstellen. Dann würde ich gerne im IPS meine Klasse bekannt machen, damit ich implementierten Methoden verwenden kann.
Was muss ich alles dafür im IPS machen um meine Klasse bekannt zu machen ?
Meinst du diese Frage jetzt wirklich ernst?
Einfach ein Script in IPS erstellen und ausprobieren.
Oder zum testen einen logeintrag mit IPS_Logmessage in der autoload generieren. Danach aber wieder entfernen, müllt dir das Log sonst zu.
Michael
Genauso…
Weil die Datei immer eingebunden wird.
Und ein Ereignis führt auch nur PHP-Code aus.
Autovervollständigung für deine Klasse wird im Editor aber bestimmt nicht funktionieren.
Eventuell solltest du dich erstmal mit den Grundlagen beschäftigt bevor du eher spezielle oder komplexere Themen in Angriff nimmst.
Michael
Bei PHP Modulen wird ein Objekt der Klasse automatisch zum Start erzeugt, wenn Du eine eigene Klasse hast und kein PHP Modul und dies in der Autoload eingebunden ist musst Du dann durch den Aufruf der Autoload, wie Du das in dem Skript machst, auch Dein Objekt erzeugen. Ansonsten sind PHP Module vielleicht eine Option, aber vieles lässt sich sicher auch erst mal ohne Klassen oder PHP Module lösen.
Wenn Du ein Objekt erzeugst ist es im Skript in dem es erzeugt wurde verfügbar. In einem anderen Skript musst Du meines Wissens dann wieder ein neues Objekt erzeugen, aber das weis Nall Chan sicher besser. Ansonsten existieren ja bei PHP Modulen Instanzen, die von IP-Symcon beim Start von IP-Symcon erzeugt werden, diese sind dann auch jederzeit als Instanz ansprechbar, außerdem hast Du den Vorteil bei PHP Modulen das Du die Eigenschaften der Klasse von IP-Symcon mitgespeichert werden. Bei einer eigenen Klasse weis ich nicht wie man da Daten, außer in Variablen, über einen Neustart des IP-Symcon Diensts hinaus behält.
Egal was du in PHP machst, es ist eine Scriptsprache welche in einen Thread ein Script ausführt und dann wird der Thread beendet (Mit ein Script meine ich natürlich inklusive alle Include).
Somit werden alle Variablen und instanzierten Objekte bei Beendigung des Scriptes/Threads verworfen.
Persistent kannst du keine Daten in PHP vorhalten.
Wie wäre es mal mit ein paar Versuchen und ein paar Grundlagen? Dann ergeben sich viele Antworten von ganz alleine Fragen dauert ja länger als versuchen g