PhpStorm

Noch eine Bitte:

Wenn ich einen unerlaubten Zugriff auf die Funktionen des IPSModuls mache (z.B. in einer stdClass auf SendDebug zugreife, dann bekomme ich zur Laufzeit den Fehler:
„Call to protected method IPSModule::SendDebug() from context …“

Es wäre schön, wenn du die Klassenfunktionen in der functions.ips.php als protected kennzeichnen würdest. Dann weist PHPStorm schon im Editor auf das Problem hin.

Gruß

Burkhard

Guten Abend Zusammen,

bislang habe ich meine Module mittels Atom Editor geschrieben, mit GitKraken auf das Repository übertragen, in IPS das Modul aktualisiert und anschließend getestet. So ist der klassische Weg, der funktioniert, aber vermutlich nicht so komfortabel ist.

Was IDE angeht bin ich absoluter Anfänger, will mich da aber weiter entwickeln. Ich programmiere in meiner Freizeit und habe es mir im Selbststudium angeeignet, also bitte Nachsicht was IDE angeht.

Was habe ich bis jetzt gemacht… Ich habe mir PHPStorm angesehen und die IPS Funktionen per include Path angelegt.

Wenn ich jetzt in einem Projekt einen Befehl aus der IPS Bibliothek verwende wird er auch vervollständigt. Aus meiner Sicht ein erstes Erfolgserlebnis :D.

Mir sind die Vorteile einer IDE noch nicht so ganz klar… ich denke es fehlt jetzt noch die Anbindung zu IPS?

D.h. vermutlich muss ich jetzt für den Debug Modus noch etwas konfigurieren, denn im Moment wenn ich das Script in PHPStorm ausführe oder auf debug gehe kommen Fehlermeldung. Ist aber klar.

Nächster Schritt xdebug!!! Ich nutze Mac OS X…

Kann einer weiterhelfen, bzw. was muss ich beachten?

Freue mich über Antworten… Denn mit IPS 4.3 muss ich meine Module mal an die neue „Verordnung“ anpassen :slight_smile:

Habe die Sichtbarkeit entsprechend hinzugefügt: Generated Functions for IP-Symcon 4.3 · GitHub

paresy

Besten Dank, aber leider sind die Rückgabewerte verloren gegangen;)

Burkhard

Magst du noch mal schauen? Habe das jetzt mal per Hand zusammengeführt :slight_smile:

paresy

Perfekt, Danke!

Kurz den Link kopieren damit ich ihn nicht verliere und ein cooles Plugin bauen kann: How to provide stubs for PhpStorm | PhpStorm Blog

paresy

Repo: GitHub - paresy/phpstorm-library-plugin: PhpStorm Library with IP-Symcon Stubs
Link: Library for IP-Symcon :: JetBrains Plugin Repository (noch in Bearbeitung von JetBrains)

Download zum Vorab ausprobieren: Dropbox - phpstorm-library-plugin-symcon.jar

Ich gebe noch mal Feedback, sobald das Plugin im offiziellen Repository gelistet ist.

paresy

Bildschirmfoto 2018-03-01 um 20.09.41.png

Was macht man damit dann genau? Ersetzt das das einbinden der IPS Funktionsliste bzw. hat das noch weitere Vorteile?

Ja, das ersetzt nur das Einbinden der Funktionsliste. Macht es einfach nur komfortabler bei der Einrichtung. Und du musst es nicht für jedes Projekt extra einrichten.

paresy

Hallo,

danke paresy, ich werde es mal testen, den Vorteil, dass man es nicht in jedem Projekt einbinden muss finde ich schon ausreichend für das Plugin. :smiley:

Grüße,
Kai

Das muss ich ja auch so nicht extra einbinden, dazu gibt es ja Default Settings, dann ist das bei jedem Projekt ja schon vorbelegt. Was ich praktisch fände wenn man so was hat, das dies auch um weitere Funktionen ergänzt wird. Ich kenne mich aber nicht aus mit PHPStorm Plugins ob so was möglich ist. Wie z.B. Anlegen eines Grundgerüsts mit Verzeichnissen für ein PHP Modul bzw. so was wie der PHP-Modul-Dataflow-Generator macht, nur in PHPStorm integriert, also automatische Generierung der GUID und Aufsetzten einer PHP Modul Grundgerüststruktur.

Das Plugin ist ab sofort offiziell im PhpStorm Repository online :slight_smile:

paresy

Gibt es auch eine kurze Anleitung wie man das nun einbindet? Wenn ich den Skripts Ordner eingebunden habe muss ich dann die Funktionsliste löschen, sonst ist das doppelt gemoppelt wenn ich das nutzten sollte oder? Wenn zu einem späteren Zeitpunkt zusätzlich noch mehr möglich wäre mit einem Plugin wäre das fein, fürs erste ist das aber auch schon mal schön.

Einfach nach IP-Symcon im PhpStorm Repo suchen und installieren. Dann sollten die Funktionen automatisch vorhanden sein und du kannst die Funktionsliste entfernen.

paresy

Also ich habe das Plugin mal installiert und die Funktionsliste gelöscht. Es taucht auch auf unter External Libraries auf und funktioniert auf den ersten Blick so weit. Was natürlich auf Dauer schön wäre, wenn denn mal Zeit ist, so ein Plugin noch zu erweitern. Man kann ja wohl mit Plugins auch z.B. in Menüs in PHPStorm eingreifen oder Funktionen abbilden. Was z.B. sehr praktisch wäre wenn es eine Möglichkeit gäbe in PHPStrom ein Modulgrundgerüst durch so ein Plugin generieren zu lassen, d.h. alle wichtigen Ordner und Dateien werden schon mal vorab angelegt. Ist ja Zukunftsmusik wäre aber hilfreich.

@paresy:

In der Funktionsliste und auch im PlugIn sind meines Erachtens die Rückgabewerte der Funktionen ReadProperty* mit

{ return true; }

nicht korrekt oder vollständig.

Somit wird z.B. folgende Anweiung als fehlerhaft ausgewiesen:

Lässt sich das verbessern?

Jupp. Hab ein Update zum Review hochgeladen.

paresy

Danke! Angekommen:)

Gruß

Burkhard

Gibt’s ein Update?


GetMessageList();
GetValue($Ident);