Module - static Funktionen

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;
		}
    }

Verwendung:

<?

$id1 = ABC_CreateVariableByName($_IPS['SELF'], "Temperatur", 2);
.....

liebe Grüße
Wolfgang

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.

Für solche globalen Funktionen kannst du deine Scripte aber in der __autoload.php laden.
Siehe: PHP — IP-Symcon :: Automatisierungssoftware
Michael

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. :smiley:

@Nal-Chan: vielen Dank für den Tipp!

liebe Grüße
Wolfgang