ReflectionClass liefert nicht alle Eigenschaften der IPSModule Klasse

Als nächstes möchte ich eine Dummy Klasse von IPSModule erstellen.

Dazu gibt es eine schöne Vorlage von @paresy:
(Build PHP functions stubs for PHPStorm inclusion · GitHub

Ursprrünglich hat die Vorlage mal eine Klasse ausgegeben, die gut aussah (links). In der aktuellen IPS Umgebung (rechts) fehlen aber die Parameter Typen sowie die Rückgabewerte:

Ursache ist meiner Meinung nach, dass zwei benutzte Reflection Methoden bei der Klasse nun „false“ zurückgeben. Beispiel:

<?php

$class = new ReflectionClass('IPSModule');

// Funktion um den Namen der Klasse anzuzeigen
echo $class->getName().PHP_EOL;

// Funktion um die Methoden der Klasse anzuzeigen
foreach($class->getMethods() as $method) {
    echo sprintf('%s: hasReturnType: %s', $method->name, (int) $method->hasReturnType()) . PHP_EOL;
}

liefert:

IPSModule
__construct: hasReturnType: 0
Create: hasReturnType: 0
Destroy: hasReturnType: 0
Migrate: hasReturnType: 0
GetIDForIdent: hasReturnType: 0
RegisterPropertyBoolean: hasReturnType: 0

Hat jemand eine Idee, warum die Funktionen nicht (mehr) funktionieren, bzw. was ich falsch mache?

Das ist so korrekt.
Wenn du die Typen der Parameter und Rückgabewerte ermitteln willst, nimm IPSModuleStrict.

Es gibt hier auch fertige Stubs vom Symcon

Allerdings ohne Parameter und Rückgabewerte als PHPDoc
Michael

Perfekt. Das Thema hatte ich schon wieder verdrängt :slight_smile: