ich habe bei nahezu allen Modulen so etwas wie dieses hier:
public function Destroy()
{
//Never delete this line!
parent::Destroy();
$this->SetTimerInterval("Timer_1", 0);
}
Das Ansinnen war, dass laufende Timer zurückgesetzt werden sollen wenn das Modul „zerstört“ wird.
Ist das überhaupt nötig?
Wenn ja, sollte man dann ein „@“ davor setzen?
Warum frage ich? Bei einem Modulupdate z.B. bekomme ich an der Stelle mit $this->SetTimerInterval(„Timer_1“, 0); eine Fehlermeldung (exemplarisch):
21.09.2020, 11:39:44 | IPS2****b | <br />
<b>Warning</b>: InstanceInterface is not available in <b>/var/lib/symcon/modules/*****/module.php</b> on line <b>9</b><br />
Aber nicht einfach so löschen, die Profile.
Zum einem wird destroy auch beim modul-Update oder Symcon-Shutdown aufgerufen und zum anderen kann der User die profile ja auch anderweitig noch benutzen.
Also erst prüfen, dann löschen.
Michael
…mir ist diese Fehlermeldung im Zusammenhang von Modul-Updates aufgefallen. Wird die (alte) Instanz dabei gelöscht (bevor das Update neu erstellt wird)?
Was passiert da technisch?
Intern wird nur die Instanziierung entsprechend entfernt und nach dem Modul-Update neu erstellt. Die Detroy Funktion sollte nur aufgerufen werden, wenn die Instanz tatsächlich vollständig entfernt wird.