Zum Inhalt

1. Woche 18.08.2022#

Zusammenfassung

Dokumentation eingerichtet#

Heute richteten wir als Erstes diese Dokumentation ein. Von Herrn Inauen bekamen wir eine Vorlage, welche bereits mit Docsify eingerichtet war. Ich persönlich präferiere MkDocs, da es mehr eingebaute Komponenten und Einstellungen besitzt. Das Aufsetzen und Lernen des Syntax ist dafür etwas schwieriger. Mithilfe von GitHub Actions automatisierte ich das Erstellen und Veröffentlichen der Dokumentation.

Die Dokumentation richtete jeder selbst ein. Während dieser Zeit ging ich im Klassenzimmer herum und half beim Aufsetzen. Ich half beim Einrichten der automatischen Veröffentlichung in GitHub. Um dies nicht jedes Mal erneut zu zeigen, erstellte ich hier auch eine kurze Anleitung dazu.

Dadurch habe ich gelernt, dass es für Anfänger einfacher ist, auf einer gegebenen Vorlage weiterzuarbeiten als von Grund auf etwas aufzubauen. Wenn ich nächstes Mal meinem Unterstift eine Aufgabe geben muss, dann werde ich ihm Beispiele oder eine Vorlage beilegen, damit er ein Grundgerüst hat. Da ich das Einrichten der GitHub Seite schon sehr oft gemacht hatte, konnte ich das ohne Schwierigkeiten erledigen. Zusätzlich hatte ich von der letzten Projektarbeit bereits eine Vorlage für MkDocs.

Merksatz:

  • Anleitungen zu schreiben hilft, das Thema zu vertiefen und genauer zu verstehen.
  • Vorlagen sind für Anfänger einfacher zu verstehen als von Grund auf etwas aufzubauen.

Mir ist aufgefallen, dass das Lernjournal mehrere Anforderungen besitzt. Um diese im Überblick zu behalten, erstellte ich eine Liste. Nach der Checkliste ist dieses und die folgenden Journale aufgebaut.

Docker angeschaut#

Für die Dokumentation und unser PHP-Projekt werden wir Docker verwenden. So kommt es nicht drauf an, ob Windows oder Linux als Betriebssystem verwendet wird. Zudem haben alle Beteiligten dieselbe PHP-Version und können so Fehler besser finden.

Da ich Docker bereits kenne, konnte ich mir die Dokumentation durchlesen und mir die wichtigsten Befehle merken. Ich habe mir die Dokumentation von Docker und Docker Compose durchgelesen. Die wichtigsten Komponenten notierte ich mir.

Gelernt habe ich, dass Docker für das Beheben von Sicherheitslücken unheimlich nützlich ist. Da Docker Container isoliert sind, können sie nicht auf andere Container zugreifen. Wenn ein Container gehackt wird, dann kann er nur auf die Daten des Containers zugreifen, nicht aber auf die Daten der anderen Container. Für das Lösen einer Sicherheitslücke im Programm, das im Container läuft, muss nur der Container mit einem Patch neu gestartet werden.

Merksatz:

  • Mithilfe Docker kann eine einheitliche Umgebung erstellt werden.
  • Docker und virtuelle Maschinen sollte man nicht mischen.

In meinem Unternehmen wird Docker nicht verwendet, da alle dieselbe Installation haben und auf Windows arbeiten. Dies erlaubt keine Präferenzen. Zusätzlich haben wir nur einen Server, was das Isolieren unnötig macht.

PHP aufgesetzt#

In diesem Modul verwenden wir PHP, was natürlich auch eine Installation von PHP benötigt. Wie bereits erwähnt, haben wir PHP über Docker installiert. Zusätzlich zu PHP ist auch eine Datenbank hinterlegt. Diese Datenbank wird von Adminer verwaltet. Es ist eine Alternative, welche sich leichter bedienen lässt als phpMyAdmin.

Für die Installation von PHP mit Docker bekamen wir eine Vorlage von Herrn Inauen. Diese Vorlage beinhaltet bereits eine docker-compose.yml Datei, welche die Container erstellt. Aufsetzen machte jeder selbst, da man eigentlich nur den Container ausführen musste.

Merksatz:

  • Docker sollte über All-In-One Installationen (XAMPP) bevorzugt werden.
  • Eine einheitliche Verwaltung von Entwicklungstools vereinfacht das Fehler finden.

Ich persönlich präferiere phpMyAdmin, da ich damit schon Erfahrung habe. Mit Adminer beschäftigte ich mich aber auch und konnte es bedienen. Beide Benutzeroberflächen finde ich vom Aussehen jedoch veraltet. Ich hoffe, dass die Entwickler in Zukunft etwas Moderneres erstellen. Mein eigenes Hosting von MariaDB läuft über phpMyAdmin, weswegen ich dies besser kenne.

Im Betrieb verwenden wir SQL Server und PostgreSQL. Zum Managen verwenden wir jedoch die offiziellen Tools von Microsoft (SSMS) und PostgreSQL (pgAdmin). Den Syntax einer weiteren Datenbank zu kennen ist für mich sehr wichtig, da ich in Zukunft mit anderen Datenbanken arbeiten möchte.

PHP Basics#

Um die Grundlagen von PHP zu verstehen, habe ich mir unterschiedliche Dokumentationen über PHP durchgelesen. Den Inhalt der Seiten fasste ich in einer Zusammenfassung zusammen. In der habe ich Beispiele erstellt und beschrieben. Die Ausgaben zeigte ich auch, damit man das Skript nicht selbst ausführen muss.

Im Unterricht verwenden wir die PHP Einfach Seite. Sie ist sehr gut für Anfänger geeignet, da sie die Grundlagen erklärt und nicht zu kompliziert ist. Der Inhalt der ersten Kapitel geht es um das Ausgeben von Werten, Schreiben von Kommentaren und den Umgang mit Variablen. Es gibt aber auch Abschnitte über SQL und erweiterte PHP-Methoden. Zusätzlich verwendete ich W3School, was für mich eine etwas übersichtlichere Seite ist.

Den Unterschied zwischen Funktion und Methode habe ich gelernt. Bisher habe ich einfach akzeptiert, dass etwas mit Name und danach zwei Klammern name() eine Methode ist. Dies ist jedoch nur der Fall, wenn die Methode in einer Klasse oder einem Objekt definiert ist. Eine Funktion ist eine Methode, die nicht in einer Klasse oder einem Objekt definiert ist. Da PHP auch ausserhalb von Klassen verwendet werden kann, ist es wichtig zu wissen, wie man dies fachbegrifflich nennt.

Merksatz:

  • Eine Methode ist eigentlich eine Funktion, die im Kontext einer Klasse oder eines Objekts verwendet wird.

    ~ StackOverflow

Mir ist aufgefallen, dass ich vom ÜK (M307) alle Basics bereits kenne. Dort haben wir eigentlich alles, was auf der PHP-Einfach Seite steht, schon überflogen. Später in diesem Modul werden wir jedoch Fortgeschritteneres machen. Für das ist es notwendig, dass die Grundlagen sitzen.