PHP Entwicklungsumgebung / Best Practice

Hallo!

ich wollte mal in die Runde fragen, wie ihr so eure Entwicklungsumgebung in Sachen PHP-Entwicklung aufgebaut habt.

Welche Software nutzt ihr für die Entwicklung eurer PHP-Skripte?
Wie ladet ihr eure PHP-Skripte in das IP-Symcon System (besonders SymBox)?

Ich nutzte zur Zeit noch Eclipse als Entwicklungsumgebung, würde aber gerne auf NetBeans umsteigen. NetBeans bietet die Möglichkeit, sich über FTP/SFTP mit einem Remote-Server zu verbinden, und die Dateien automatisch zu synchronisieren. Leider unterstützt die SymBox bisher nur SCP… welches NetBeans wiederum nicht unterstützt. Daher müssen Datein bisher manuell über WinSCP auf die SymBox kopiert werden. Wie macht ihr das so?

Grüße aus Hessen,
Andy :slight_smile:

Ich entwickle immer alles auf meinem lokalem System (Windows/MacOS) mit PHPStorm und sobald ich das Modul gut finde, lade ich es auf GitHub in meinem develop Branch hoch und kann es dann auf meinem Live-System über das Module Control installieren. Manchmal schiebe ich es auch über SCP/WinSCP direkt auf mein IP-Symcon System, wenn ich unbedingt vorab testen will. Generell entwickle ich aber lieber auf meinem „Test-IP-Symcon“, wo ich Neustarten und alles kaputt machen kann wie ich will. Das ist übrigens laut Lizenzvereinbarung auch explizit erlaubt! :slight_smile:

Da wir versuchen auf der SymBox eher ein minimalistisches System zu haben, wird SFTP eher nicht kommen.

paresy

Eclipse bietet doch auch remote Files an. Stichwort RSE Remote System Explorer.
BTW: SFTP ist Filetransfer über SSH, was nicht geht ist FTPS.(TLS).

Ich habe auch eine lokale Development IPS Installation, die ich direkt mit IntelliJ/+PHP-Plugin bearbeite. Bei Änderungen wird IPS neu gestartet. Ist es fertig, wird nach GitHub gepusht und kann von dort auf das Produktivsystem vom Modulcontrol geladen werden. Wenn Du Änderungen im vom Modulcontrol verwalteten Verzeichnis machst, kannst Du darüber keine Updates mehr ziehen.

BTW Kleiner Feature-Vorschlag: statt das Update komplett abzulehnen ein Button mit der Option, die ursprüngliche Version wieder herzustellen anzubieten.

Tommi

Ich gehe ebenfalls so vor wie die Kollegen vor mir.
Als Editor nutze ich Visual Studio Code, dieser lädt die Files auf mein Symcon Entwicklungssystem per SFTP hoch wo ich dann recht einfach testen kann. Wenn alles fertig ist, wird die Entwicklung entweder in mein privates Git Repository oder für alle ins Repository bei Github gepusht.

Ich habe bis vor kurzem einfach Notepad ++ genutzt. Jetzt bin ich auf Atom umgestiegen.

Hallo Fons,

Atom gefällt mir auch sehr gut, vor allem ist er OpenSource.

Hast Du in Atom die Funktionen von IPS eingebaut, damit die auch erkannt werden?
Generated Functions for IP-Symcon 4.3 · GitHub

Wenn ja, wie hast Du das gemacht?

Gruß
Christian

Atom finde ich immer noch einen prima Editor, das mit dem Einbinden der IPS Funktionen ist mir jedoch nicht gelungen. Ich nutze jetzt PHPStorm, da geht das einwandfrei. Eine kostenlose Open Source Alternative wäre Net Beans.

Hallo,

ich selber bin mit den Entwicklungsumgebungen nicht so im Thema, aber ich werfe mal Visual Studio / PluginIn Devsense in den Raum.

Kennt sich jemand dazu aus bzw. kann was dazu sagen ob das gut oder mehr schlecht ist.

Vorteile, Nachteile ?

Gruß
MacToolz

Ich nutze seit kurzem Visual Studio Code und versuche gerade die IPS Funktionen zu importieren (Generated Functions for IP-Symcon 5.0 · GitHub). Leider noch ohne Erfolg. Bin mir auch nicht sicher, ob ich dafür eher in

  • Erweiterung Intellisense oder
  • Snipplets

schauen muss.

Hat jemand VS Code mit IPS Funktionssatz im Einsatz?

Gruß
Thorsten

Noch nicht, nutze es aktuell nur für C++.
Bin aber auch schon am überlegen mit PHP von Netbeans auf VS Code zu schwenken.
Michael

Ich finde es VS Code ziemlich gelungen :).

Die von paresy veröffentlichte Funktionsliste lässt sich bspw. sehr leicht einbinden (gibt bestimmt noch bessere Wege).

1.) Die Datei Generated Functions for IP-Symcon 5.0 · GitHub runterladen
2.) In VS Code eine Testdatei anlegen und die Funktionsliste via require_once einbinden
3.) Schon steht ein passendes Intellisense zur Verfügung

Gruß
Thorsten

Das ist aber doof.
Weil die Zeile muss dann später wieder raus.
Global includes gibt es nicht?
So löse ich es in Netbeans; damit habe ich dann unverfälschten Code.
Michael

Ich vermute es muss (ähnlich wie mein PHPStrom Plugin) eine Möglichkeit geben dies „immer“ zuladen und verfügbar zu haben.

paresy

Davon gehe ich auch aus.
Aber irgendwie habe ich es auf die Schnelle nicht gefunden.

Es gibt immerhin user, workspace und folder Settings. Da müsste es doch irgendwo dabei sein. Falls nichts, dann gibt es bestimmt ein passendes Plugin. Würde mich wirklich wundern wenn nicht. Weil mein Vorschlag von oben ist ja wirklich eher aus der Kategorie „Krücke“ :rolleyes:

Visual Studio Code User and Workspace Settings

Gruß
Thorsten

Also entweder sehe ich den Wald vor lauter Bäumen nicht, oder es ist nicht so trivial eine PHP Datei für Intellisense im Hintergrund einzubinden.

Ich habe die Frage auf Stackoverflow gestellt - bisher noch ohne Antwort.

autocomplete - Visual Studio Code, PHP Project, Global include/Autoload/Autoinclude a functions.php file just for intellisense - Stack Overflow

Gruß
Thorsten

Hallo.

Ich habe eine praktikablere Lösung gefunden :).

Das VS Code Plugin PHP Intellisense - Crane (PHP Intellisense - Crane - Visual Studio Marketplace) ist hilfreich.

Man kopiert sich die functions.ips.php Datei irgendwo in seinen VS Workspace Pfad und das Plugin indiziert alle PHP Dateien im Workspace um Intellisense anbieten zu können.

Damit funktioniert Intellisense mit den IPS Funktionen ohne jedoch die functions.ips.php im Script referenzieren zu müssen :).

Gruß
Thorsten

Hi Thorsten,

TOP! Danke für Deinen Tipp, bzw. für Deine Recherchen!

Viele Grüße
Peter

Guten Morgen.

Kurzes Feedback.
Nachdem ich mit VS Code und der eingebundenen IPS Funktionsliste wunderbar ein Modul programmieren konnte kann ich VS Code dafür empfehlen :).

Gruß
Thorsten

Hallo Thorsten,

funktioniert die Crane Intellisense Extension bei dir noch korrekt? Ich habe es installiert und die functions.ips.php in den Workspace kopiert aber bei mir gehen keine Vorschläge auf. Wenn ich mit Shortcut Ctrl+Shift+R die Dateien im Workspace neu indizieren lasse kommt die Fehlermeldung "command’craneRebuildSources’ not found.

Beste Grüße

Matthias

Guten Morgen.

Sorry ich habe nicht mitbekommen, dass es hier eine Rückfrage gab :eek:.
Ich hatte das Problem auch und habe auf das Plugin „PHP Intelephense“ gewechselt (Crane deinstalliert). Das geht auch mit aktuellen VS-Code Versionen noch.

Gruß
Thorsten