Ein wenig Vorarbeit

1. Neos lokal installieren

Bevor man überhaupt starten kann, braucht es ein laufendes Neos. Richten wir also eine lokale Neos-Instanz ein. Diese Anleitung funktioniert übrigens auf jedem Betriebssystem.

Neos Installation mit Ddev und Docker

Jedes Webprojekt benötigt irgendeine Art von Tech-Stack um funktionieren zu können. Diese könnten unter anderem eine Datenbank, ein Webserver, eine bestimmte Laufzeitumgebung, Bibliotheken oder ein ganzes Betriebssystem enthalten. Um solch ein Projekt lokal entwickeln zu können, müssen diese Sachen entsprechend auch lokal vorhanden sein. Bevor man also mit der eigentlichen Arbeit anfangen kann, muss zuerst eine Entwicklungsumgebung vorhanden sein. Natürlich ist das bei Neos nicht anders. Für diesen Zweck sind Docker zusammen mit Ddev extrem praktisch und die vermutlich komfortabelste Weise ein laufendes Neos zum Entwickeln herbei zu zaubern. 

Ddev und Docker installieren

Um Ddev nutzen zu können, benötigen wir Docker. Glücklicherweise bietet Docker eine ausführliche Installationsanleitung, mit der, solange man sich alles sorgfältig durchliest, auch alles problemlos funktioniert. Für Ddev ist es wichtig, die Post-Install Schritte für “Manage Docker as a non-root user” durchzuführen.

Weiter geht es mit der Installation von Ddev. In der Ddev-Dokumentation gibt es Anleitungen zur Installation. Am Besten ist es Ddev auf die empfohlene Weise zu installieren. Das wäre mit dem Package-Manager Brew ( auf Linux und Mac) bzw. chocolatey (Windows).

Ist das erledigt, kann auch Ddev installiert werden.

brew tap drud/ddev && brew install ddev

bzw. choco install ddev

Wie in der Dokumentation als auch im Terminal gibt es den Hinweis, nach der Installation den Befehl mkcert -install auszuführen.

Screenshot Mac Terminal
Brew wurde erfolgreich installiert

Ein neues Ddev-Projekt erstellen

Wir erstellen einen neuen Ordner in dem sich das Projekt aufhalten wird. In dem Fall heißt der Ordner "neos_tutorial". Hier lohnt es sich mit einer Entwicklungsumgebung oder Code-Editor weiterzumachen. PhpStorm und VSCode sind hervorragende Kandidaten.

Befehl ddev config im Terminal

Im Projekt-Ordner wird ein Terminal geöffnet und der Befehl ddev config ausgeführt. 

  1. Wir geben hier zuerst den Projektnamen ein. In diesem Fall soll es "neostutorial" sein.
  2. Danach wird die Docroot Location gefragt. Wir geben "Web" ein.
  3. Als Project Type geben wir "php" an.
  4. Bei Yes/No Fragen wird mit Yes geantwortet

 

Ist der Befehl durchgelaufen, begeben wir uns in den von Ddev erstellten Container mit ddev ssh

Mit Docker und Ddev haben wir ein laufendes System erhalten, welches alle technischen Voraussetzungen erfüllt, die wir für die Entwicklung brauchen. Die ganzen Abhängigkeiten wurden aber nicht auf unserem System installiert sondern in einem Docker-Container. Diesen kann man sich fast wie einen eigenen Rechner vorstellen. Um diesen Quasi-Rechner zu bedienen, muss man also “in den Container”. Zu Docker gibt es reichliche Ressourcen um sich schlau zu machen. Hier werden nur die Aspekte aufgeführt die wir auch brauchen.

Mit der Kommandozeile im Container führen wir also nun diesen Befehl aus:

ddev composer create neos/neos-base-distribution

Dadurch werden die Daten für ein mehr oder weniger blankes Neos heruntergeladen und installiert. Eventuell man einmal mit yes bestätigen werden, dass alle bestehenden Ordner-Inhalte entfernt werden.

Die Inhalte liegen zu dem Zeitpunkt noch im Ordner neos-base-distribution. Mit mv neos-base-distribution/* . && rm -r neos-base-distribution verschieben wir die Inhalte dorthin wo wir sie brauchen werden.

Mit dem Befehl wurde auch ein fertiges Site-Package installiert. 

Besser ist es aber mit einem eigenen Site-Package zu starten. Deswegen wird das Neos.Demo Site-Package gleich deinstalliert. Dafür löschen wir in der composer.json die Zeile "neos/demo": "8.3.0". Mit dem Befehl   ddev composer update übernehmen wir die Änderung.

Die zu löschende Zeile
Composer bestätigt, dass das neos/demo-Paket entfernt wurde

Ddev auf Neos konfigurieren

Im Projekt-Ordner befindet sich nun ein Ordner namens ".ddev". Um Neos noch ein Stück schneller zu machen wird in diesem Ordner die Datei docker-compose.env.yaml erstellt und mit diesen Inhalten gefüllt:

#.ddev/docker-compose.env.yaml
version: '3.6'
services:
  web:
    environment:
      - FLOW_CONTEXT=Development/Ddev
      - FLOW_PATH_TEMPORARY_BASE=/tmp/Flow
      - FLOW_REWRITEURLS=1

Was diese Datei macht, ist Umgebungsvariablen so zu setzen, dass temporäre Dateien im Docker-Container gespeichert werden. Außerdem wird auf einen Neos-Context verwiesen, welchen wir nun erstellen. Im Ordner Configuration/Development erstellen wir den neuen Ordner namens Ddev. In diesem Ordner erstellen wir wiederum die Datei Settings.yaml, welche wie folgt gefüllt wird:

#Configuration/Development/Ddev/Settings.yaml
Neos:
  Imagine:
    driver: Imagick
  Flow:
    persistence:
      backendOptions:
        driver: pdo_mysql
        dbname: db
        user: db
        password: db
        host: db

    # The following is necessary to allow ddev to act as a proxy on your local machine
    http:
      trustedProxies:
        proxies: "*"

Und schon kann man mit Neos loslegen. Um das Projekt mit unserer Konfiguration zu starten, geben wir in der Kommandozeile ddev start ein. Hat Ddev seinen Container erfolgreich gestartet, ist das Projekt unter https://neostutorial.ddev.site erreichbar.

Ausgabe im Terminal nach "ddev start"

Neos Entwicklerschulung für Agenturen und Entwickler

Neos Setup

Folgt man dem Link gelangt man ins Neos Setup, in dem noch ein paar finale Schritte erledigt werden müssen.

Wir werden aufgefordert einen Befehl auszuführen um die Datenbank einzurichten. Gehen wir also zuerst mit ddev ssh in den Container. Dort können wir anschließend mit ./flow doctrine:migrate wie gewünscht die Datenbank einrichten. 

Als nächstes soll ein Admin-Benutzer mit dem Befehl ./flow user:create --roles Administrator erstellt werden.

Zuletzt müssen wir ein sog. Site-Package an den Start bringen. Den Namen des Packages können wir selbst wählen. Für unsere Zwecke lautet der Befehl ./flow kickstart:site NeosTutorial.Site neostutorialgefolgt von ./flow site:import --package-key NeosTutorial.Site

Erster Schritt des Neos Setups

Was ist ein Site Package?

Neos ist ja eine Art Baukasten für Websites. In dem Sinne befinden sich in Neos-Packages also Bausteine. Packages können installiert werden, um auf fertige Komponenten zugreifen zu können. Packages folgen einer Namenskonvention in der ganz oberflächlich steht von wem das Package ist und was es ist. Der Package Name vom Neos Form Builder lautet beispielsweise Neos.Form.Builder. 

Site Packages beinhalten also den Code für ein Projekt und ihr Name hat demnach immer ein .Site enthalten.

Login in das Neos Backend

Über /neos kommen wir ins Backend. In diesem Fall also neostutorial.ddev.site/neos. 

Mit dem Admin Account aus dem vierten Schritt des Setups kann man sich einloggen. Bei einem 404-Fehler reicht es die Seite einmal neu zu laden. 

Damit wäre Neos lokal eingerichtet. Wer möchte kann sich schon mit den vorhandenen Inhaltselementen austoben.

Im nächsten Kapitel beginnen wir unsere eigene Neos-Seite aufzubauen.

Bonus: neos/nodetypes entfernen

Im neos/nodetypes-Package sind bereits einige hilfreiche NodeTypes vorhanden. Diese können auch gern verwendet werden, nur ist es zur Übung und späteren Anpassbarkeit besser wenn das Package deinstalliert wird und man die NodeTypes selbst baut. Die Deinstallation ist in wenigen Schritten ausgeführt:

  1. Im Site-Package, in der Datei composer.json wird die Zeile neos/nodetypes: "*" entfernt.
  2. Im Ddev-Container (ddev ssh) wird composer update ausgeführt.
  3. Noch immer im Container wird der Temporäre Cache-Ordner geleert rm -rf /tmp/Flow/
  4. Im Container wird auch der Flow-Cache ebenfalls geleert ./flow flow:cache:flush

Wird die Neos-Seite jetzt neu geladen, sollten keine NodeTypes mehr vorhanden sein.

Lesen Sie weitere Kapitel

Impulsgespräch

Kostenloses Impulsgespräch

Mirko Kaufmann

Ihr Ansprechpartner:
Mirko Kaufmann

info@kaufmann.digital
T: +49-5771-8438930

Nach oben