Hallo,
ich möchte meine vielen Utility-Scripts in Module packen und diese dann ohne „include IPS_GetScriptFile…“ verwenden.
Diese Scripte funktionieren alle ohne Instanz.
Gibt es in Symcon Modulen so etwas wie static Funktionen, welche ohne Instanz-ID aufgerufen werden können?
(also so, wie z.B. die Symcon Systemfunktionen z.B. IPS_CreateVariable)
Bsp.:
<?php
class ModulnameXYZ extends IPSModule {
/** (OHNE ID. sonst müsste ich immer ein Dummy-Objekt mit übergeben)
* ABC_CreateVariableByName($parent, $name, $type);
*/
public static function CreateVariableByName($parent, $name, $type)
{
$variableID = @IPS_GetVariableIDByName($name, $parent);
if($variableID===false)
{
$variableID = IPS_CreateVariable($type);
IPS_SetParent($variableID, $parent);
IPS_SetName($variableID, $name);
}
return $variableID;
}
}
Nein das ist nicht möglich.
Module sind ja wie die nativen Module von Symcon ein Bauplan für eine bestimmte Instanz.
Es gab dazu schon einmal die gleiche Frage; finde ich aber am Handy gerade nicht.
Kannst Du mal näher beschreiben welchen Zweck Du damit genau verfolgst? Wenn Du auf Skripte in einem Modul verlinken willst kannst Du SelectScript verwenden.
Ansonsten ist der Sinn eines Moduls ja eigentlich das man keine Skripte braucht, sondern die Einstellungen in der Instanz vornimmt und das was verarbeitet wird in einem Skript dann eben im Modul stattfindet.
Daher wäre es vielleicht sinnvoll Du würdest näher darauf eingehen was das Modul was Du nutzen willst dann für eine Funktion bzw. Zweck erfüllen soll.
Hallo Fonzo,
ich wollte mal meinen „Wildwuchs“ an Utility-Scripten, der im laufe der Jahre so entstanden ist, in eine ordentliche Bibliothek reinpacken.
Ich werde das aber so wie von Michael vorgeschlagen mit der __autoload.php machen.
Manchmal denke ich anscheinend zu kompliziert, wenns doch auch so einfach geht.