Was ist ddev? https://ddev.readthedocs.io/en/stable/ DDEV is an open source tool that makes it dead simple to get local PHP development environments up and running within minutes. 2 2 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Unter der Haube Docker docker-compose (also v2) go (kompiliert für Windows, Mac (auch M1), Linux) 3 3 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Einfache Installation ddev ist nur ein einzelnes Binary! Es gibt auch Pakete Homebrew Chocolatey Arch Linux (AUR) Bash Script für andere Distributionen https://ddev.readthedocs.io/en/stable/#installation 6 6 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Architektur ddev-router (Reverse Proxy) Project 1 web db dba Project 2 web db dba Custom Service 1 z.B. Elasticsearch Custom Service 2 z.b Redis ... ... 11 11 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Beispiel Projekt Ziel: PHP Anwendung mit Zugriff auf ElasticSearch 12 12 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Lösung anlegen einer lokalen Config Dateien /config.*.y*ml sind per .gitignore ausgeschlossen. 25 25 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
NFS Problematiken NFS muss installiert sein -> Sonst kommen komische Fehlermeldungen NFS Installation je Betriebssystem unter schiedlich Unterschiedliche Partitionierung Unterschiedliche Benutzer-IDs Keine Inotify Events (Watch-Tasks z.B. grunt, webpack, Magento Cache Clean) 28 28 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Inotify Proxy Diverse Lösungen erhältlich Bekanntes NPM Paket ist nur ein Wrapper für eine C-Lib und benötigt installierte Build-Tools. Kleiner, schneller, golang
Mutagen Sync Zwei-Wege-Synchronisation Vorteil: Performance da alle Dateien im Container liegen Nachteil: Redundante Datenhaltung (Es werden nicht alle Dateien synchonisiert) Seit ddev 1.18 verfügbar. Beste Integration von Mutgagen in einem Dev-Tool die mir bekannt ist. 30 30 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Tasks exec -> Im Container (genormte Umgebung) exec_host -> Auf dem Host (Achtung!) composer -> Führt ein Composer Kommando aus 56 56 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Lokale config.yaml Überschreibungen .ddev/config..yaml Nicht im Team geteilt da über .gitignore ausgeschlossen. 59 59 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev
Typisches Problem: Router gibt Fehler aus Lösung: Projekte beim herunterfahren des Rechners mit ddev stop -a alle Projekte stoppen. 64 64 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev