WebOAuth Instanz return declaration type PHP 8.2

In einem meiner Module nutze ich WebOAuth zur Authentifizierung mittels der WebOAuth Instanz.

In meinem Modul wird von der WebOAuth Instanz die

protected function ProcessOAuthData()

aufgerufen.

Für PHP 8.2.5 benötige ich ja jetzt ein return declaration type.

@paresy
Welchen muss ich da nehmen?

Sobald ich in meiner Methode void, string oder mixed nutze… bekomme ich einen Fehler im Browser bei der Registrierung:

Fatal error: Declaration of OAuthInstance::ProcessOAuthData() must be compatible with NukiSplitterWebAPI::ProcessOAuthData(): null in /- on line 3

Nutze noch die Standard IPSModule Klasse.

Uli

Dann kannst du keinen Return Type deklarieren.
Michael

Dort sollte eigentlich kein ReturnType notwendig sein (zumal die Basis-Klasse diese ja auch nicht definiert bisher)

Oder kommt der Fehler ohne, dass du etwas geändert hast?

paresy

Off Topic:
Mein Ansatz ist alle meine Module „fit“ für die 7.0 und PHP 8.2.5 zu machen.
Dies bedeutet, dass ich jetzt alle meine Module anfassen werde und wenn möglich alles erledigen will.

Drei Punkte die bei mir auf der Agenda stehen:
utf8_encode, utf8_decode ersetzten
return type declaration setzten
Auf IPSModuleStrict umstellen

IPSModuleStrict ist ja noch nicht ganz fertig und die zugehörigen Stubs fehlen glaube ich auch noch.

Ich kann eueren Fahrplan noch nicht ganz nachvollziehen, wann wir Entwickler was machen sollen und finde die Übersicht aus meiner Sicht nicht ausführlich genug als Nicht-Profi-Programmierer.

Michael @Nall-chan unterstützt immer sehr tatkräftig mit seinem Wissen und bin auch allen anderen dankbar die helfen. Ich programmiere in meiner Freizeit und die Zeit steht halt auch nicht unendlich zur Verfügung. Trotzdem will ich den anderen Usern, welche meine Module nutzen, einen sanften Übergang ermöglichen.

Zurück zum Topic:
Bei IPSModule Klasse ohne return type declaration ist alles gut und funktioniert. PhpStorm meckert mir nur an, dass eine declaration fehlt, die habe ich dann in der Basis Klasse IPSModule gesetzt, was zu dem Fehler führt. Vermutlich unterstützt die IPSModule Klasse dies nicht, also lasse ich es offen und muss es vermutlich zu einem späteren Zeitpunkt erneut umstellen. Man lernt ja auch immer wieder etwas hinzu.

Daher nochmal meine Bitte:
Was sollen wir Entwickler in Schritt 1 tun und bis wann?
Ab wann sollen wir auf IPSModuleStrict umstellen, sofort, später, ab wann?

Uli

Das ist prinzipiell eine gute Idee - ich würde aber aktuell nur Fehler korrigieren, die wirklich dein Modul „kaputt“ machen.

Diese zwei Punkte würde ich mir für den Herbst aufsparen, wenn wir Richtung 7.0 Release gehen. Denn erst zum Release können wir die Updates im Stable „durchwinken“ und bis dahin hättest du sonst ein Modul, welches eigentlich keine anderen Updates/Fixes mehr bekommen kann.

Dort kannst du schon anfangen. Schau gerne mal hier: IPS 7 / PHP 8.2: Fragen zu utf8 - #7 von paresy → Auch hier der Hinweis, dass du wahrscheinlich noch nicht alle Befehle entfernen kannst, da erst mit IPSModuleStrict die I/Os die Daten HEX-kodiert senden. Aktuell kommst du leider noch nicht um die utf8_encode, utf8_decode an dieser Stelle herum.

Aktuell würde ich die neue Visu der 7.0 genießen, den Sommer und nur die Probleme fixen, die in der 7.0 wirklich zu Fehlern führen. Den Rest würde ich angehen, wenn es Richtung Release geht und wir dann auch die Doku ect. besser vorbereitet haben. Dort haben wir definitiv noch einiges an Hausaufgaben zu tun.

Ich hoffe ein wenig Klarheit geschaffen zu haben. Wenn nicht → Gerne noch mal Fragen :slight_smile:

paresy

1 „Gefällt mir“

Alles klar, das ist der Weg! :wink:

Uli

1 „Gefällt mir“