
Willkommen im PHP Oldschool Kurs. In diesem Kurs werden wir ein einfaches Projekt zur Produktverwaltung in unter 7h umsetzen.
Kurz ein paar Worte zu mir: Bin seit über 20 Jahren in der IT tätig und Entwickle seit über 15 Jahren mit PHP.
Im nächsten Kapiteln werden wir kurz das Thema Oldschool betrachten und um für wen dieser Kurs interessant ist und für wen nicht.
Dieser Kurs lebt von euren Ideen. Das Beispielprojekt lässt sich noch um viele weitere Punkte erweitern. Ganz am Ende werde ich einige vorschlagen. Lasst mich wissen was euch interessiert und dann werde ich diese Kapitel nachreichen.
Solltet Ihr Fragen zu dem Kurs haben, dann stellt diese bitte in den jeweiligen Kapiteln oder schreibt mir eine Nachricht. Ich werde versuchen alle Fragen rasch zu beantworten.
Wir werden den Kurs gemeinsam in den einzelnen Lektionen erarbeiten. Es ist vorab nichts gescriptet und es wird vorkommen, dass ich mich spontan im Kapitel für Dinge entscheide die vorher nicht angedacht waren.
Nicht gescriptet heißt auch, dass Fehler passieren werden die wir gemeinsam suchen müssen und manche Dinge werden wir auch ein paar mal umbauen müssen. Dies ist bei der Software-Entwicklung ein ganz normaler Vorgang.
In dem Kapitel werden wir ganz kurz darauf eingehen was Oldschool bedeutet.
Viel wichtiger ist noch zu erfahren für wen dieser Kurs geeignet ist und für wen nicht.
In diesem Kapitel schauen wir uns an welche Software wir benötigen um lokal auf dem Rechner mit PHP entwickeln zu können.
Wir basteln uns für unsere Anwendung eine erste HTML Vorlage. Später werden wir diese in ein Template umbauen.
Wir konzentrieren uns zwar nicht hauptsächlich auf das Design aber ganz geht es auch nicht. Mit CSS werden wir unser HTML ein wenig aufpeppen.
Composer ist leider nicht ganz Oldschool aber wir kommen leider nicht komplett herum. Viele Bibliotheken lassen sich ohne Composer nicht mehr einbinden. Daher werden wir uns das Thema kurz anschauen.
Auf Packagist können wir nach PHP Bibliotheken suchen und und die Details dazu ansehen.
Das Routing übernimmt mehrere Funktionen für uns. Auf der einen Seite haben wir schöne und lesbare URLs und auf der anderen Seite werden hier auch gleich auf die richtige Form der Parameterübergabe sowie die Aufrufmethode überprüft.
Damit das Routing auch funktioniert müssen wir eine htaccess Datei verwenden. Diese kann alle eingehenden Aufrufe auf unsere index.php umleiten.
In diesem Kapitel werden wir uns die Template Engine Twig anschauen und unsere HTML Vorlage in ein Twig Template umbauen.
Wir lernen wie wir Variablen an Twig übergeben können.
Wollen wir Serverseitig Daten speichern so benötigen wir eine Datenbank. In unserem Fall werden wir ganz klassisch eine MySQL Datenbank verwenden.
PHP liefert mit PDO ein gutes Werkzeug mit Datenbanken umgehen zu können. Wir verwenden jedoch eine kleine Bibliothek mit der wir Daten einfach abrufen bzw speichern können.
In dem Kapitel beginnen wir mit der Lagerverwaltung. Wir erstellen eine Seite um unsere Lager anzeigen zu können.
Wir werden ein globales Array verwenden um wichtige Daten in allen Templates verfügbar zu machen.
Um neue Lager hinzufügen zu können benötigen wir ein HTML Formular.
Serverseitig müssen wir diese Daten nun in der Datenbank speichern.
Sirius Safe ist eine kleine Bibliothek um übergebene Daten serverseitig zu validieren.
In dem Kapitel lernen wir wie wir bestehende Lager bearbeiten können.
Geänderte Daten in der Datenbank updaten.
Für die Produktverwaltung müssen wir vorab die Datenbank erweitern.
Auch Produkte müssen angezeigt, hinzugefügt & bearbeitet werden.
Auch Produkte müssen angezeigt, hinzugefügt & bearbeitet werden.
In diesem Kapitel werden wir uns anschauen wie wir Produkte löschen.
In dem Kapitel werden wir lernen wie wir ein Produkt einen Lager hinzufügen können.
In dem Kapitel kümmern wir uns ums löschen von Lagerbeständen.
Des weiteren sehen wir uns Sessions an.
In dem Kapitel werden wir ein wenig unseren Code aufräumen.
In dem Kapitel werden wir lernen wie wir den Lagerbestand anzeigen.
Wir werden dabei auch über Arrays, SQL Joins und Schleifen sprechen.
Da jedes Lager eine gewisse Lagerkapazität hat müssen wir schauen, dass diese auch eingehalten wird. Das heißt wir müssen schauen, dass wir unsere Lager nicht überfüllen.
In dem Kaptitel werden wir jQuery einrichten und dynmisch HTML Elemente erzeugen um Daten im Hintergrund an den server schicken zu können.
Wir lernen wie wir mit jQuery einen AJAX Post Request auslösen und Daten an den Server schicken können.
Die im letzten Kapitel abgeschickten Daten müssen Serverseitig verarbeitet werden.
In diesem Kapitel kümmern wir uns noch um die Clientseitige Validierung der abgeschickten Daten.
In diesem Kapitel lernen wir wie wir Benutzer und Passwörter in der Datenbank abspeichern und diese bearbeiten können.
Um die Userdaten benützen zu können benötigen wir ein Loginformular & einen Login-Check.
Des weiteren müssen wir auch die bestehenden Controller Dateien ein wenig anpassen.
Kursteilnehmer Martin hat den Wunsch geäußert das Thema API zu behandeln.
In dieser Lektion werden wir uns daher dem Thema API widmen und eine kleine REST API entwickeln.
Das System ließe sich noch um viele Punkte erweitern.
Lasst mich wissen welche Dinge euch speziell interessieren, dann werden ich den Kurs um diese Punkte erweitern.
Mögliche Punkte wären:
API (✓ erledigt )
Shop System
Benachrichtigungssystem mit E-Mails
interne Suche
Deployment auf einen Webserver
Auswertungen
Logging
Tiefer in das Thema Security eintauchen (JWT, CSRF, ...)
...
In diesem Kurs lernen wir, wie wir mit PHP kleine bis mittelgroße Projekte ohne große Frameworks ganz "Oldschool" umsetzen können. Wir werden gemeinsam ein kleines PHP Programm zur Lager & Produktverwaltung entwickeln.
Da wir ohne Frameworks arbeiten werden wir den meisten Code selber schreiben dabei aber auf sehr hilfreiche Bibliotheken zurück greifen. Des weiteren werden wir den Code nicht Objektorient sondern auf die prozedurale Programmierung zurückgreifen.
Prozedural bedeutet, dass wir keine Objekte verwenden sondern hauptsächlich auf Funktionen zurückgreifen die wir aufrufen wenn wir sie benötigen. Der Code wird Klassischerweise - Oldschool - von "oben nach unten" entwickelt.
Wir werden jedoch durchaus einige Dinge einfließen lassen die aktuell überall benutzt werden. Dazu zählen ein Controller-View Prinzip, ein Routing, Trennung von Code und HTML (Templates) sowie das verwenden eines Database Abstraction Layers.
Da wir natürlich auch Clientseitige Ausgaben haben werden wir uns auch mit dem Thema HTML & CSS beschäftigen. Wir werden zur Unterstützung das CSS Framework Bootstrap einsetzen.
Da wir Clientseitig auch Daten ohne einen Reload speichern wollen bzw. auch Daten direkt im Client verändern wollen werden wir auch Javascript verwenden. Hier werden wir auf das jQuery Framework zurückgreifen um einfach und schnell arbeiten zu können.
Den Kurs werde ich laufen um weitere spannende Themen erweitern. Wenn ihr ein spezielles Thema behandeln wollt so lasst es mich wissen.