PHP, SQL, Serversprachen "offline" lernen und üben?

M

McMoneysack91

Gast
Liebe Freunde,

ich möchte mich gerne in serverseitigen Sprachen üben, frage mich jedoch, wie ich das auf dem lokalen Rechner zu Hause am geschicktesten bewerkstelligen soll.

So Sachen wie HTML/CSS/JS klappen offline und lokal ja super. Man legt entsprechende Dateien an, beschreibt sie und öffnet sie anschließend im Browser, welcher den geschriebenen Code dann kompiliert/parst und man hat sofort das Ergebnis.

Wenn ich nun aber Datenbanken, Benutzerinteraktion etc. lernen möchte, so sind ja ganz spezifische Sprachen wie SQL, PHP und dergleichen gefragt.

Wie stelle ich es am besten an? Wird hier eine IDE Pflicht? Welche? Eine, die genau sowas in Echtzeit ausführt oder darstellt? Da fehlt mir gerade etwas die Fantasie.
 
XAMPP (Apache Friends) wie schon vorgeschlagen, eignet sich super für deine Zwecke. Habe das auch schon oft benutzt.
 
  • Gefällt mir
Reaktionen: Madman1209 und McMoneysack91
Einleuchtend. Sind also in sich geschlossene IDEs, die einen Server "immitieren". Klasse. Dann werde ich mich bei beiden hier vorgeschlagenen Lösungen einlesen und sie mal kennenlernen.

Herzlichsten Dank!
 
Zusätzlich: Hast Du die Theorie von „Datenbanken“ schon intus?
 
  • Gefällt mir
Reaktionen: Raijin
TorenAltair schrieb:
Hast Du die Theorie von „Datenbanken“ schon intus?
Ich bin mir nicht sicher, ob ich die Frage verstehe. Welche der Theorien meinst du denn? Aufbau und Struktur von Datenbanken ist bewusst/bekannt aber die Interaktion mit Anwendungen möchte ich lernen/üben.
 
Aufbau, Struktur, Normalisierung etc meine ich, ja.
 
Xampp würde sich auch anbieten, das gibt es sogar als portable Version und bearbeiten von Dateien dann mit Visual Code
 
Der Einwurf von @TorenAltair ist nicht zu unterschätzen. Das Thema "Datenbanken" ist nicht so simpel wie es auf den ersten Blick scheint. Man darf eine Datenbanktabelle nicht mit einer Exceltabelle oder so vergleichen. Selbst eine vermeintlich simple Datenbank besteht gerne mal aus einem Dutzend Tabellen.

Zunächst einmal ist da das Design, also die Struktur der Tabellen, Beziehungen untereinander, Eindeutigkeit und solche Dinge. Ein Stichwort aus diesem Bereich: Normalformen. Eine schlecht designte Datenbank kann nur kompliziert oder ggfs gar nicht eindeutig abgefragt werden, weil Redundanz und unpraktische/falsche Abhängigkeiten eine Abfrage nahezu unmöglich machen können.

Erst nachdem das Datenbankdesign abgeschlossen ist, macht man sich an die Abfrage der Daten. In einer vollständig normalisierten Datenbank kann man buchstäblich jeden Zusammenhang abfragen und so jedes Abfrageergebnis erzielen, das man sich wünscht. Hier schlägt dann also die Stunde für die SQL-Anweisungen SELECT, INSERT, UPDATE, DELETE mit JOINs und so.

Nachdem man die nötigen Abfragen hat, implementiert man sie in die entsprechende Anwendung, sei es eine PHP-Seite, eine C#-Anwendung, python, what ever.
 
  • Gefällt mir
Reaktionen: Oelepoeto
McMoneysack91 schrieb:
Dann werde ich mich bei beiden hier vorgeschlagenen Lösungen einlesen und sie mal kennenlernen.
Was ich vorhin noch vergessen habe.
Bei Laragon hast du den großen Vorteil das alles Portable ist und du u.a. PHP und nodeJS hast, damit hast du mehr oder weniger die beiden großen Backend-Technologien zum testen und entwickeln und kannst dir z.B. per Knopfdruck WordPress, Laravel usw. "installieren".
 
McMoneysack91 schrieb:
Wenn ich nun aber Datenbanken, Benutzerinteraktion etc. lernen möchte, so sind ja ganz spezifische Sprachen wie SQL, PHP und dergleichen gefragt.
MS Office, Libre Office usw. bringen eine Datenbank App mit, darin kannst du direkt dein SQL benutzen. Bis auf Nuancen bei den Dialekten von SQL, ist es genau das gleiche SQL das du an ein DBMS schickst.
 
Zuletzt bearbeitet:
Ich hab das zwar nur überflogen, aber hier ist ein Tutorial zur Normalisierung von Datenbanken. Das wirkt vielleicht erstmal unnötig kompliziert und sehr theoretisch, aber je besser und strukturierter und vor allem eindeutiger die Datenquelle ist, umso effizienter lässt sie sich abfragen. Bei einer banalen Mitgliederliste eines Vereins, die nur aus Namen besteht, ist das Optimierungspotential sicherlich überschaubar, aber je komplexer die Datensätze und Zusammenhänge werden, umso wichtiger wird vernünftiges Datenbankdesign.
 
Oh Leute. Natürlich wird ein Anfänger, der hier fragt, wie er überhaupt 'nen Server und ne DB lokal zum Laufen bringt, erstmal seine "Anwendung" komplett durchplanen, bevor er eine Zeile Code schreibt. So ein Schmarrn.

Setzt dir deine DB auf und spiel damit rum. Wenn du sie kaputt gespielt hast, mach sie platt und spiel wieder damit rum. Und nebenher beschäftigst du dich mit dem Theoriekram dazu. So lernt man.
 
  • Gefällt mir
Reaktionen: Physikbuddha, RedIvan, McMoneysack91 und 6 andere
XAMPP kann man nehmen.

Warum aber nicht einfach eine Linux-VM aufsetzen? apache2 sowie phpMyAdmin installiert und los gehts.

Bevor ich mir Gedanken um Normalisierung mache würde, würde ich erst einmal schauen dass ich etwas zum Laufen bekomme wo ich vom Browser aus Daten in eine Datenbank lesen/schreiben kann.
 
S.Kara schrieb:
Warum aber nicht einfach eine Linux-VM aufsetzen?
Klar kann man das, man kann das auch alles per Container ala Docker machen... aber glaubst du ernsthaft das der Fragesteller sich erstmal damit beschäftigen möchte/kann?
 
Sehe ich ähnlich wie @NeoExacun, einfach anfangen. Wichtig ist aus meiner Sicht irgendein Ziel. Eine kleine Anwendung. Leg dich auf eine Sprache nach ersten Versuchen fest:
  • mit welcher Sprache hast am schnellsten z.B. "Hello World" (Serverseitig ausgespielt) am laufen
  • bei welcher Sprache gefällt dir die Doku am besten

Als IDE würde ich mit Visual Code starten (kostenlos// Open Source)

Bei den "Server-Sprachen" würde ich heutzutage mir neben PHP auch unbedingt Python anschauen.
Bei kompilierten Sprachen ist für webserver Java nicht tot zukriegen. Hier sind aber auch Go und Rust im kommen (eher Systemsprachen - steile Lernkurve).
Moderne Sprachen und Frameworks bringen den Server mit: du startest dein Programm/Service lokal und das startet dann automatisch einen server (Buzzword "Microservice").

bzgl. Lokale Server und DB würde ich auf Docker setzen. Damit hast sehr schnell eine Datenbank lokal und kannst diese auch sehr schnell wieder löschen oder gegen eine andere austauschen:

https://docs.docker.com/desktop/install/windows-install/

Damit hast dann nicht nur eine Datenbank sondern technische Grundlagen die du heutzutage überall brauchst.
Deinen Service kannst damit dann auch leicht "deployen" ohne einen Server konfigurieren zu müssen.
 
Zuletzt bearbeitet:
McMoneysack91 schrieb:
Wie stelle ich es am besten an? Wird hier eine IDE Pflicht? Welche? Eine, die genau sowas in Echtzeit ausführt oder darstellt? Da fehlt mir gerade etwas die Fantasie.
Theoretisch kannst du einen Webserver wie Apache2 oder nginx samt PHP-Engine komplett im Terminal + Texteditor bedienen und dafür entwickeln. Das Problem und der Vorteil daran ist die steile Lernkurve, da du dich zwangsweise mit den Grundlagen und den Komponenten beschäftigen musst.

Ein anderer Ansatz wäre bei der IDE deiner Wahl zu schauen, welche Lösung es dafür gibt. Gerade bei dem Standardkram wie PHP-Entwickeln und Testen gibt es mal schnell >100.000 Leute auf dem Globus mit dem selben Problem und entsprechend Lösungen, Anleitungen.
Nehmen wir als Beispiel Visual Studio Code: https://code.visualstudio.com/docs/languages/php
Alternativ gibt es sowas auch von IntelliJ bzw. WebStorm / PHPStorm
An VSC können wir auch gleich zeigen was nicht so toll ist, die haben eine Anleitung für T-SQL statt Standard SQL. Die Anleitung ist also für Microsofts SQL Server mit ihrem proprietärem Dialekt von SQL. Da würde ich an deiner Stelle ein Plugin/Alternativen suchen um SQLite und/oder Postgresql[1] zu nutzen.

Ansonsten noch ein Wort der Warnung. XAMPP unter Windows funktioniert grundlegend, es gibt jedoch ein paar Ecken & Kanten, wo das Verhalten nicht identisch zu einem Apache/Nginx auf einem unixoidem System ist.

[1]SQLite ist extrem weit verbreitet, es gibt kein Windows, Mac/iOS, Desktop Linux ohne eine oder mehrere SQLite Binaries. Postgresql wäre dann die mächtigere Variante.
Und MySQL wurde hier empfohlen, an MySQL hängt Oracle und das motiviert Viele sehr den MySQL fork MariaDB einzusetzen.
 
NeoExacun schrieb:
Setzt dir deine DB auf und spiel damit rum
Das ist mal ein Wort. :D Ich wurd schon langsam nervös :D

Ich lerne den ganzen Spaß, ob HTML, CSS, JS, PHP oder SQL mittels W3Schools und ich muss sagen deren Lernmaterial ist super. In dem Sinne, dass es den absoluten Total-Laien ganz sachte an die Materie heranführt. Sprich, ich bin guter Dinge, dass ich all diese Nuancen beherzigen lerne, wenn ich mich an W3Schools halte.
 
@McMoneysack91 W3Schools ist eine hervorragende Lern-Quelle wenn es um den ersten Kontakt geht mit Sprachen/Technologien :)
https://www.freecodecamp.org ist auch noch eine sehr nennenswerte Quelle, auch kostenlos und haben einen überragenden YouTube Kanal mit Videos zu so alles was es gibt.
 
  • Gefällt mir
Reaktionen: RedIvan und McMoneysack91
Zurück
Oben