Alternativer PHP-Editor mit Debugging

Bei NetBeans funktioniert dies leider nur pro Project.
Also nur Script öffnen ist doof.
Michael

Danke, der Tip war goldrichtig !:slight_smile:

Ich hab immer nur unter „Tools -> Options -> Editor“ gesucht.

Ist aber entsprechend Deinem Tip unter „File -> Project Properties -> Encoding -> UTF-8“ einstellbar !

Viele Grüsse
Harald

Hallo,

da ich ganz frisch in Symcon bín, habe ich vor der selben Frage gestanden.

Der integrierte Editor ist höflich ausgedrückt suboptimal. Das einzig Positive
ist die Unterstützung die Code-Unterstützung für die Standardfunktionen.

Letztendlich bin ich bei Netbeans gelandet. Dass Netbeans eine gute IDE
ist, steht sicher ausser Frage. Zu lösende Themen waren Debugging und
die Codeunterstützung für die IPS-Funktionen. Beides gelöst

Code-Unterstützung für die IPS-Standardfunktionen

netbeans-codeunterstützung.png

Debugging

Debugging ist super :D:D:D

Hast du die Lösung hier aus dem Forum? :slight_smile: Ansonsten wäre es cool, wenn du für uns Wissbegierige eine kleine Anleitung schreibst :slight_smile:

paresy

Das mit dem Debug wäre cool…
Für die Funktionsliste gibt es ja ein Script von Tommi.
Michael

Ich hatte xdebug auf Windows auch schon mal am laufen. Allerdings nicht lange, weil sich damit IPS permanent aufgehangen hat. Und für Linux gibt es die Extension für das IPS-PHP nicht.

Meine Lösung: mit meinem IPS-Wrapper die IPS -Internen Funktionen remote über die API aufrufen. Ist zwar langsam, geht aber mit einem externen PHP. Damit geht dann auch die Codevervollständigung.
Tommi

Hallo tommi,

wo finden wir denn den IPS-Wrapper?

Hab im Forum, mit dem Suchbegriff „IPS-Wrapper“, auf die schnelle nix gefunden.

Wenn sich das lohnt würd ich ja glatt von NotePad++ auf NetBeans umsteigen.

Danke für Deine Antwort.

Here we go: IPSymcon JSON API Wrapper: IPSymon JSON API wrapper

Du generierst Dir damit die Funktionsliste als PHP und bindest diese (zB. über den include Path) mit in das Projekt ein. Wie es in Netbeans funktioniert, kann ich Dir nicht sagen. Ich verwende aktuell IntelliJ mit der PHP Extension.
Zusätzlich kann man sich für die Modulentwicklung noch die __*.inc.php Dateien aus dem IPS scripts Verzeichnis
dazupacken.

Tommi

NetBeans hat ein globales und Projekt bezogenes Include.
Sollte kein Problem sein dies in den Einstellungen zu finden.
Wobei man für den Wrapper eine PHP-Umgebung braucht, oder?
Mir wäre da die Info zum direkten debuggen mit NetBeans lieb …
Michael

Das war der Einstieg.

Das war ein Bug in xdebug. Passiert mit der aktuellen Version 2.5 nicht mehr.

Ja blöd. Allerdings schließt das Debugging nicht zu 100% aus. :smiley:

Der generierte Wrapper, braucht nicht einmal includiert zu sein. Es reicht, wenn die Datei irgendwo im Netbeans Projekt liegt und dann funktioniert Itellisense schon. Wenn man über den Wrapper ausführen, will braucht man ein lokales PHP. Wenn man meine Lösung macht nicht. Läuft alles über die IPS Executable.

Da ich scheinbar nicht der Einzige bin, der an einer richtigen IDE mit Debugging interessiert ist, werde ich mal eine Anleitung schreiben.

Das wäre cool.
Mein letzter Versuch mit Windows NetBeans und xDebug ging voll daneben :slight_smile:
Michael

Ich hab die Version von tommi zwar noch nicht umgesetzt, wär aber auch an einer Lösung von predi ger many sehr interessiert.

Hallo,

hier die Anleitung für IPS auf Windows.

Step 1 - PHP Version von IPS ermitteln

Neues Script anlegen.
Code: phpinfo();
IPS 4.1 verwendet PHP Version 5.6.26

Step 2 - xdebug downloaden und installieren

Xdebug: Downloads
Xdebug: Downloads
PHP 5.6 VC11 TS (32 bit)… IPS ist 32 Bit
Verzeichnis „C:\IP-Symcon\xdebug\bin“ anlegen
php_xdebug-2.5.0-5.6-vc11.dll nach „C:\IP-Symcon\xdebug\bin“

Step 3 - php.ini

[Xdebug]
zend_extension=„C:\IP-Symcon\xdebug\bin\php_xdebug-2.5.0-5.6-vc11.dll“
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir=„C:\IP-Symcon\xdebug“
xdebug.idekey=netbeans-xdebug

Symcon neu starten damit die Änderungen an der php.ini greifen.

Step 4 -Netbeans downloaden und installieren

https://netbeans.org/downloads/
Ob x86 oder x84 ist egal.

Step 5 - Netbeans Projekt anlegen

Source-Folder: C:\IP-Symcon
Project Name: IP-Symcon
PHP: 5.6 !
Encoding: UTF-8

Url korrekt setzen inkl. Symcon Port!

04.png

… so sollte die Projektstruktur aussehen.

Step 6 - Syntax Highlightning für PHP

IPS verwendet per Default Short Tags. <?
Project --> Properties

Danach funktioniert die das Syntax Highlightning <? und <?php

Step 7 - IPS Wrapper für JSON

http://www.tdressler.net/ipsymcon/jsonapi.html

Neue ips_wrapper.php mittels gen_ips_wrapper.ips.php genieren oder einfach die vorhandene ips_wrapper.php
nach C:\IP-Symcon kopieren. Die im Download enthaltene Version wurde mit IPS 4.0 erstellt.
Der Wrapper muss nicht ins scripts. Wir wollen den nämlich nicht benutzen, sondern nur Code Unterstützung.
Dafür ist es ausreichend, wenn er irgendwo im Netbeans Projekt liegt.

Step 8 - Debugging einrichten

Tools -> Options -> PHP Debugging

Port und Session ID wie in php.ini.
Alle anderen Haken aus. Vor allem „Stop at First Line“ darf nicht an sein. Wenn das an ist und wir debuggen
bleiben alle Aufrufe (egal woher) in der ersten Zeile der „__autoinclude.inc.php“ stehen… IPS hängt defakto.

09.png

Der Haken ist absichtlich aus.

Step 9 - Debugging starten

oder

http://localhost:3777/?XDEBUG_SESSION_START=netbeans-xdebug

Step 10 - Debugging stoppen

oder

http://localhost:3777/?XDEBUG_SESSION_STOP_NO_EXEC=netbeans-xdebug

Debugging

Wenn der Debugger verbunden ist und ein Fehler auftritt, springt Netbeans automatisch in das File und an die fehlerhafte Stelle. Wenn man regulär debuggen will, Breakpoint setzen. Aktion per WebUI, Console oder Rauchzeichen ausführen. Debuggen.

Viel Spaß
predi ger many

Danke für die super Anleitung! Die Einrichtung hat problemlos geklappt.

Nur das Debuggen funktioniert bei mir nicht. Sobald ich den Debugger starte, startet das Webfront. Soweit wohl alles ok.
Aber ein gesetzter Breakpoint oder ein eingebauter Fehler werden ignoriert :confused:
Kannst du mir da noch einen Tipp geben?

Gruß

Burkhard

Also bei mir funktioniert es tadellos.
Vielen Dank dafür :slight_smile:

Auch wenn es ‚nur‘ ein Project mit einem PHP-Modul ist, funktioniert es ebenso :smiley:

Und hier mal etwas, welches ich aus der IPS-WebSite gezogen habe.
Diese Datei enthält die komplette Doku aus der IPS-Doku zu allen Funktionen und Parametern.
IPS_Functions.zip (55.7 KB)

Schaut dann so aus:
Zwischenablage01.png
Michael

Moin,

emm … irgendwas läuft hier auch noch nicht so …

Aus IPS herraus öffnet sich schon mal gar nichts bei mir. Im Log ist zwar das zu sehen nur wo wird den nun dem Fehler nachgegangen? In IPS oder in NetBeans?

In diesem Fall, dieses Script wird von einem anderen aufgerufen und Werte übergeben. wenn ich das Script so auf rufe funktioniert es ja.

hmmm…

Grüße
Thomas

Hallo zusammen,

mir geht es ähnlich wie Burkhard und Thomas. Die Anleitung ist super und ich konnte alle Punkte ohne Probleme abarbeiten. Aber irgendwie fehlt mir die Info wie ich ein Skript debuggen kann.

Ich bin bisher so vorgegangen:

[ul]
[li]Starten von NetBeans, das zu untersuchende Script laden und Debugsession starten (Bild1).
[/li][li]Der Browser wird dann mit dem Webfront geöffnet (Bild2).
[/li][li]Im Webfront navigiere ich dann zum fehlerhaften Testscript und starte es (Bild3).
[/li][li]Im Webfront bekomme ich dann die Meldung, dass eine Variable nicht definiert ist, was ja beachsichtigt war (Bild4).
[/li][li]In NetBeans tut sich die ganze Zeit nichts.
[/li][/ul]
Von Eclipse kenne ich so, dass ich ein PHP-Script starte, dort entweder Step by Step durch den Code laufen kann oder bei gesetzen Breakpoints das Script bis dahin abgearbeitet wird. Wie kann ich denn dies mit Netbeans machen? Ich komme einfach nicht drauf.

Gruss
Bernd
Bild1.jpgBild2.jpgBild3.jpgBild4.jpg

An alle, welche Probleme haben: Auf welchem OS läuft euer Symcon Server?

Die Anleitung gilt nur für Symcon auf Windows. Keine andere Plattform. Für Nicht-Windows funktioniert es anders.

Hallo predi ger many,

Beim mir läuft folgende Konfiguration:

[ul]
[li]Windows 10 Pro, 64 bit, Version 1607, Build 14393.693
[/li][li]VCdist 2015 (x86), 14.0.24215
[/li][li]IP-Symcon Kernel Version 4.10, Update Version 02.01.2017
[/li][li]PHP Version 5.6.26 (das von IP-Symcon mitgebrachte PHP)
[/li][li]netbeans-8.2-php-windows-x86
[/li][li]php_xdebug-2.5.0-5.6-vc11
[/li][/ul]
Gruss
Bernd

Moin,

bei mir läuft auch die aktuelle IPS 4.1 beta auf windows 10 Pro.

Gruß
Thomas