Hallo an die Web-Freunde unter uns,
ich würde gerne eine kleine Diskussion zur lokalen Entwicklungsumgebung für den Bereich der Webentwicklung anstoßen, um mir in diesem Zuge auf der einen Seite konkrete Anregungen und Handlungsmöglichkeiten für die eigene Entwicklungsumgebung einzuholen, auf der anderen Seite aber auch Inspirationen zu sammeln sowie einfach mal ein wenig über den Tellerrand zu schauen, wie es sich andere in der eigenen Entwicklungsumgebung so bequem machen.
Ich bin jetzt schon seit längerer Zeit in der Bredouille, dass ich nicht so richtig happy mit der vorherrschenden Situation bin, auf der anderen Seite aber auch nicht wirklich die zündende Idee habe, was ich wie verbessern könnte.
Ich beginne mal mit der Schilderung meiner aktuellen Situation:
Im Grunde habe ich explizit keinerlei Webserver auf meinem PC installiert. Xampp habe ich schon vor längerer Zeit rausgeschmissen.
Wenn ich an Webanwendungen mit PHP arbeite, nutze ich dementsprechend den eingebauten Webserver von PHP.
Für reine Backend-Anwendungen ohne viel Hokuspokus funktioniert das noch ganz gut.
Wenn allerdings dann Frontend-Geschichten hinzukommen, die ein Build-System benötigen, wird es langsam schwieriger.
Mit Gulp habe ich diesbezüglich schon häufiger gearbeitet, sodass ich schnell ein einigermaßen verlässliches Build-System zur Verfügung habe.
In Verbindung mit einer PHP-Anwendung stellt sich allerdings das Problem ein, dass Sachen wie der Auto-Reload im Browser wegfallen und sich die Frontend-Entwicklung für eine PHP-Anwendung dann direkt wieder eingestaubter anfühlt.
Zusätzlich muss man auch sagen, dass der PHP-Webserver natürlich auch nicht wirklich die produktive Umgebung abbilden kann und sich in der Funktionalität teilweise von einem normalen Apache-Webserver unterscheidet.
Was will ich sagen: Ideal ist mein Setup dann bestimmt nicht.
Kommen wir zum Thema Verwaltung von PHP-Versionen: Im Grunde habe ich hier die Situation, dass ich immer mehrere PHP-Versionen auf meinem PC installiert habe, diese aber nicht gleichzeitig betrieben werden. Die Auswahl einer entsprechenden Version geschieht praktisch dadurch, dass ich den PHP-Installationsordner, der in der Systemumgebung vermerkt ist, einmal komplett leere und aus meinen Ordner mit den verschiedenen PHP-Versionen einen dort reinkopiere. Ein wenig umständlich, nennen wir das mal so.
Vollkommen ignoriert ist dabei natürlich noch die Tatsache, dass ich den Quellcode der unterschiedlichen PHP-Versionen immer mal wieder aktualisieren muss, indem ich den Quellcode von der PHP-Website runterlade, entpacke und dann entsprechend nach meinem System arrangiere.
Nächstes Problem: Die Datenbank. In dem Fall habe ich mittels des "MySQL Installer for Windows" einen MySQL Server in Version 8 installiert. Die Verwaltung regel ich über das Programm HeidiSQL. Das geht alles. Allerdings wünsche ich mir hier auch mehr Flexibilität. Ich möchte ja nicht alle paar Wochen die DB neu installieren, mehrere Versionen verwalten müssen oder gar noch andere DB-Systeme wie PostgreSQL auf meinem PC rumfliegen haben.
Und zu guter Letzt: Das leidige Thema IDE/Code-Editor. Ich hatte bis vor wenigen Monaten noch die Möglichkeit, kostenlos die IDEs von Jetbrains auszutesten. Nach kurzer Eingewöhnungsphase fand ich VS Code nur noch klobig und ineffizient, während insbesondere PHPStorm es mir richtig angetan hatte, obwohl ich wahrscheinlich größtenteils nur die Spitze des Eisbergs von Features berührt habe.
Nun versuche ich mich wieder ein Stück weit an VS Code umzugewöhnen, aber so richtig geklappt hat das noch nicht.
Wahrscheinlich müsste ich mir mal die Zeit nehmen, VS Code entsprechend anzupassen und zu erweitern...
Wie auch immer. Ihr seht, ich bin noch nicht so richtig glücklich mit meinem Setup und hätte gerne mehr Flexibilität und mehr Verwaltungs- und Individualisierungsmöglichkeiten.
Im Grunde wären vorgefertigte Projektumgebungen weitgehend unabhängig und abgekoppelt von meinem PC-System wünschenswert.
Im Idealfall hätte ich für verschiedene Anwendungsfälle unterschiedliche Konfigurationen und Umgebungen zur Verfügung, welche ich dann beim Starten eines neuen Projekts nur kurz auswählen und automatisch durch ein Script o.ä. installieren müsste.
Ein zentrales Stichwort wäre an diesem Punkt wahrscheinlich Docker oder gibt es da noch bessere bzw. einfachere Möglichkeiten?
Wie aufwendig gestaltet es sich, tatsächlich an den Punkt zu kommen, eine vorgefertigte Umgebung für ein Projekt nur kurz auf Befehl installieren zu müssen?
Habt ihr diesbezüglich Tipps, Anregungen oder gar Leitfäden, die einen an die Einrichtung einer solchen Entwicklungsumgebung heranführen?
Auf was setzt ihr so?
Ich danke euch schon mal im Voraus für jegliche Tipps, Anregungen, Diskussionsbeiträge oder Vorstellungen eures persönlichen Setups und ggf. vorhandenen Schwierigkeiten und Problemen, mit denen ihr dabei zu kämpfen habt.
Viele Grüße
JR Cologne
ich würde gerne eine kleine Diskussion zur lokalen Entwicklungsumgebung für den Bereich der Webentwicklung anstoßen, um mir in diesem Zuge auf der einen Seite konkrete Anregungen und Handlungsmöglichkeiten für die eigene Entwicklungsumgebung einzuholen, auf der anderen Seite aber auch Inspirationen zu sammeln sowie einfach mal ein wenig über den Tellerrand zu schauen, wie es sich andere in der eigenen Entwicklungsumgebung so bequem machen.
Ich bin jetzt schon seit längerer Zeit in der Bredouille, dass ich nicht so richtig happy mit der vorherrschenden Situation bin, auf der anderen Seite aber auch nicht wirklich die zündende Idee habe, was ich wie verbessern könnte.
Ich beginne mal mit der Schilderung meiner aktuellen Situation:
Im Grunde habe ich explizit keinerlei Webserver auf meinem PC installiert. Xampp habe ich schon vor längerer Zeit rausgeschmissen.
Wenn ich an Webanwendungen mit PHP arbeite, nutze ich dementsprechend den eingebauten Webserver von PHP.
Für reine Backend-Anwendungen ohne viel Hokuspokus funktioniert das noch ganz gut.
Wenn allerdings dann Frontend-Geschichten hinzukommen, die ein Build-System benötigen, wird es langsam schwieriger.
Mit Gulp habe ich diesbezüglich schon häufiger gearbeitet, sodass ich schnell ein einigermaßen verlässliches Build-System zur Verfügung habe.
In Verbindung mit einer PHP-Anwendung stellt sich allerdings das Problem ein, dass Sachen wie der Auto-Reload im Browser wegfallen und sich die Frontend-Entwicklung für eine PHP-Anwendung dann direkt wieder eingestaubter anfühlt.
Zusätzlich muss man auch sagen, dass der PHP-Webserver natürlich auch nicht wirklich die produktive Umgebung abbilden kann und sich in der Funktionalität teilweise von einem normalen Apache-Webserver unterscheidet.
Was will ich sagen: Ideal ist mein Setup dann bestimmt nicht.
Kommen wir zum Thema Verwaltung von PHP-Versionen: Im Grunde habe ich hier die Situation, dass ich immer mehrere PHP-Versionen auf meinem PC installiert habe, diese aber nicht gleichzeitig betrieben werden. Die Auswahl einer entsprechenden Version geschieht praktisch dadurch, dass ich den PHP-Installationsordner, der in der Systemumgebung vermerkt ist, einmal komplett leere und aus meinen Ordner mit den verschiedenen PHP-Versionen einen dort reinkopiere. Ein wenig umständlich, nennen wir das mal so.
Vollkommen ignoriert ist dabei natürlich noch die Tatsache, dass ich den Quellcode der unterschiedlichen PHP-Versionen immer mal wieder aktualisieren muss, indem ich den Quellcode von der PHP-Website runterlade, entpacke und dann entsprechend nach meinem System arrangiere.
Nächstes Problem: Die Datenbank. In dem Fall habe ich mittels des "MySQL Installer for Windows" einen MySQL Server in Version 8 installiert. Die Verwaltung regel ich über das Programm HeidiSQL. Das geht alles. Allerdings wünsche ich mir hier auch mehr Flexibilität. Ich möchte ja nicht alle paar Wochen die DB neu installieren, mehrere Versionen verwalten müssen oder gar noch andere DB-Systeme wie PostgreSQL auf meinem PC rumfliegen haben.
Und zu guter Letzt: Das leidige Thema IDE/Code-Editor. Ich hatte bis vor wenigen Monaten noch die Möglichkeit, kostenlos die IDEs von Jetbrains auszutesten. Nach kurzer Eingewöhnungsphase fand ich VS Code nur noch klobig und ineffizient, während insbesondere PHPStorm es mir richtig angetan hatte, obwohl ich wahrscheinlich größtenteils nur die Spitze des Eisbergs von Features berührt habe.
Nun versuche ich mich wieder ein Stück weit an VS Code umzugewöhnen, aber so richtig geklappt hat das noch nicht.
Wahrscheinlich müsste ich mir mal die Zeit nehmen, VS Code entsprechend anzupassen und zu erweitern...
Wie auch immer. Ihr seht, ich bin noch nicht so richtig glücklich mit meinem Setup und hätte gerne mehr Flexibilität und mehr Verwaltungs- und Individualisierungsmöglichkeiten.
Im Grunde wären vorgefertigte Projektumgebungen weitgehend unabhängig und abgekoppelt von meinem PC-System wünschenswert.
Im Idealfall hätte ich für verschiedene Anwendungsfälle unterschiedliche Konfigurationen und Umgebungen zur Verfügung, welche ich dann beim Starten eines neuen Projekts nur kurz auswählen und automatisch durch ein Script o.ä. installieren müsste.
Ein zentrales Stichwort wäre an diesem Punkt wahrscheinlich Docker oder gibt es da noch bessere bzw. einfachere Möglichkeiten?
Wie aufwendig gestaltet es sich, tatsächlich an den Punkt zu kommen, eine vorgefertigte Umgebung für ein Projekt nur kurz auf Befehl installieren zu müssen?
Habt ihr diesbezüglich Tipps, Anregungen oder gar Leitfäden, die einen an die Einrichtung einer solchen Entwicklungsumgebung heranführen?
Auf was setzt ihr so?
Ich danke euch schon mal im Voraus für jegliche Tipps, Anregungen, Diskussionsbeiträge oder Vorstellungen eures persönlichen Setups und ggf. vorhandenen Schwierigkeiten und Problemen, mit denen ihr dabei zu kämpfen habt.
Viele Grüße
JR Cologne