Zu Content springen
Shopware

Optimierte Shopware-Entwicklung mit devenv: Schneller und Effizienter

von Steven Wimmer

Optimierte Shopware-Entwicklung mit devenv: Schneller und Effizienter
15:01
Es ist Montagmorgen, 9:00 Uhr. Dein Kunde meldet einen kritischen Bug im Online-Shop, der sofort behoben werden muss. Du startest deinen Rechner, öffnest dein lokales Entwicklungsprojekt und wartest. Und wartest. Die Docker-Container fahren hoch, der Webserver startet langsam, die Datenbank braucht ihre Zeit – nach gefühlten Ewigkeiten lädt endlich das Shopware-Backend. Bis du produktiv arbeiten kannst, sind bereits wertvolle Minuten verstrichen. Kennst du diese Situation?

Genau hier setzt devenv an und verändert grundlegend, wie du lokal mit Shopware entwickelst. Statt auf träge Container-Lösungen zu setzen, bringt devenv alle Dienste nativ auf deinem System zum Laufen – mit einer Geschwindigkeit, die dich begeistern wird.

Illustration eines Entwicklers am Arbeitsplatz mit Shopware-Logo auf dem Laptop, Code am Monitor und Symbolen für E-Commerce und Entwicklung.

Was macht devenv zu einer besonderen Entwicklungsumgebung?

devenv steht für "development environment" und ist ein modernes Entwicklungs-Tool, das auf dem Nix-Paketmanager basiert. Anders als Docker oder andere Virtualisierungstechnologien verzichtet devenv komplett auf Container und führt stattdessen alle Dienste nativ auf deinem Betriebssystem aus.

Das Besondere: devenv erstellt für jedes Projekt eine isolierte Umgebung, ohne dabei die Performance zu beeinträchtigen. PHP, MySQL, Redis und alle anderen Komponenten laufen mit voller Systemgeschwindigkeit, während trotzdem jedes Projekt seine eigenen, spezifischen Versionen nutzen kann.

Die Vorteile von devenv auf einen Blick

Aspekt devenv Docker/MAMP
Startzeit 2-3 Sekunden 30-60 Sekunden
Performance Native Systemgeschwindigkeit Virtualisiert, langsamer
Ressourcenverbrauch Minimal Hoch (Container-Overhead)
Hot Reloading Automatisch ohne Browser-Refresh Manuelles Neuladen nötig
Versionsverwaltung Pro Projekt unterschiedlich Global oder komplex konfigurierbar


Schritt-für-Schritt: devenv für Shopware einrichten

Vorbereitung: Das Fundament schaffen

Bevor du mit devenv durchstarten kannst, benötigst du Nix als Grundlage. Auf macOS und Linux installierst du Nix mit einem einzigen Befehl:

sh <(curl -L https://nixos.org/nix/install) --daemon

Windows-Nutzer müssen zuerst WSL2 (Windows Subsystem for Linux) aktivieren und können dann über das Ubuntu-Terminal die gleichen Schritte durchführen.

Nach der Installation startest du ein neues Terminal und verifizierst die Installation:

nix --version

Cachix konfigurieren: Geschwindigkeit von Anfang an

Um die Installation zu beschleunigen, konfigurierst du Cachix – einen Service, der vorgefertigte Pakete bereitstellt:

nix-env -iA cachix -f https://cachix.org/api/v1/install
cachix use devenv
cachix use shopware

Zusätzlich trägst du deinen Benutzernamen in die Nix-Konfiguration ein:

echo "trusted-users = root DEINBENUTZERNAME" | sudo tee -a /etc/nix/nix.conf && sudo pkill nix-daemon

devenv installieren

Jetzt installierst du devenv selbst:

nix profile install --accept-flake-config github:cachix/devenv/latest

devenv in ein bestehendes Shopware-Projekt integrieren

Falls du bereits ein laufendes Shopware-Projekt hast, das bisher mit MAMP, XAMPP oder Docker lief, kannst du devenv nahtlos integrieren. Dazu erstellst du im Hauptverzeichnis deines Shopware-Projekts vier neue Dateien:

Die Konfigurationsdateien

devenv.nix – Das Herzstück der Konfiguration:

{ pkgs, ... }:

{
  packages = [
    pkgs.php81
    pkgs.php81Packages.composer
    pkgs.nodejs
  ];

  services.mysql = {
    enable = true;
    package = pkgs.mysql80;
  };

  services.nginx = {
    enable = true;
  };

  scripts.setup.exec = ''
    composer install
    php bin/console system:install --create-database --basic-setup
  '';
}

devenv.yaml – Projektspezifische Einstellungen:

inputs:
  nixpkgs:
    url: github:NixOS/nixpkgs/nixpkgs-unstable

.envrc – Automatische Umgebungsaktivierung:

use devenv

devenv.lock – Versionsfixierung (wird automatisch generiert)

Das Projekt starten

Nach dem Erstellen der Konfigurationsdateien navigierst du im Terminal in dein Projektverzeichnis und aktivierst die devenv-Umgebung:

devenv shell

Du erkennst eine aktive devenv-Umgebung daran, dass am Anfang jeder Terminal-Zeile [devenv] in lila Schrift erscheint. Innerhalb dieser Umgebung nutzt du automatisch die projektspezifisch konfigurierten PHP-, Node.js- und MySQL-Versionen.

In einem zweiten Terminal startest du die Dienste:

devenv up

Schon nach wenigen Sekunden ist dein Shopware-Shop unter http://localhost:8000 erreichbar – das Backend findest du unter http://localhost:8000/admin mit den Zugangsdaten admin/shopware.

Ein frisches Shopware-Projekt mit devenv aufsetzen

Wenn du komplett neu startest, kannst du direkt ein Shopware-Projekt mit devenv-Integration erstellen:

composer create-project shopware/production mein-shop-projekt
cd mein-shop-projekt

Dann fügst du die devenv-Konfiguration hinzu und installierst die Abhängigkeiten:

devenv init
devenv shell
composer install
bin/console system:install --create-database --basic-setup

Die Watcher-Funktion: Entwickeln ohne Unterbrechung

Eines der beeindruckendsten Features von devenv ist die Watcher-Funktion. Sie überwacht automatisch Änderungen an deinen Dateien und lädt das Frontend und Backend in Echtzeit neu – ohne dass du den Browser manuell aktualisieren musst.

Um den Watcher zu aktivieren, führst du in der devenv-Shell folgende Befehle aus:

bin/console theme:compile
bin/console asset:install
bin/console cache:clear
bin/watch storefront

Ab sofort siehst du Änderungen an Templates, Styles oder JavaScript-Dateien sofort im Browser – ein enormer Produktivitätsgewinn beim Entwickeln von Themes oder Frontend-Funktionen.

Performance-Vergleich: devenv vs. traditionelle Lösungen

Die Geschwindigkeitsunterschiede zwischen devenv und container-basierten Lösungen sind dramatisch:

Startzeiten im Vergleich

  • devenv: 2-5 Sekunden bis zur Einsatzbereitschaft
  • Docker Compose: 30-90 Sekunden für alle Container
  • DDEV: 20-60 Sekunden je nach Projektkomplexität
  • MAMP/XAMPP: 10-30 Sekunden, aber global für alle Projekte

Shopware-Backend Ladezeiten

  • devenv: 0,8-1,2 Sekunden für typische Admin-Seiten
  • Docker: 2-4 Sekunden durch Virtualisierungs-Overhead
  • MAMP: 1,5-3 Sekunden je nach Systemlast

Speicherverbrauch

devenv nutzt deutlich weniger RAM, da keine Container-Virtualisierung stattfindet. Während Docker-basierte Entwicklungsumgebungen schnell 2-4 GB RAM verbrauchen, benötigt devenv nur den Speicher für die tatsächlich laufenden Dienste.

Häufige Herausforderungen und ihre Lösungen

Problem: Node.js-Versionskonflikte

Wenn du eine Fehlermeldung wie "Package 'nodejs-16.20.2' is marked as insecure" erhältst, passt du die devenv.nix an:

# Statt einer festen Version
packages = [ pkgs.nodejs ];  # Nutzt die aktuelle stabile Version

Problem: PHP-Versionen wechseln

Für verschiedene Shopware-Projekte benötigst du unterschiedliche PHP-Versionen. In devenv änderst du einfach die entsprechende Zeile:

packages = [
  pkgs.php82  # Für Shopware 6.5+
  # pkgs.php81  # Für ältere Shopware-Versionen
];

Problem: Datenbankmigrationen

Wenn du von MAMP oder Docker zu devenv wechselst, möchtest du vermutlich deine bestehenden Datenbanken übernehmen:

# Export aus der alten Umgebung
mysqldump -u root -p shopware_db > backup.sql

# Import in devenv (in der devenv shell)
mysql -u root shopware < backup.sql

devenv-Workflows für verschiedene Entwicklungsszenarien

Theme-Entwicklung optimieren

Für die Entwicklung von Shopware-Themes bietet devenv mit dem Watcher perfekte Bedingungen:

# Terminal 1: devenv-Services
devenv up

# Terminal 2: Theme-Entwicklung
devenv shell
bin/console theme:compile --sync
bin/watch storefront

Änderungen an SCSS-Dateien oder Twig-Templates werden automatisch kompiliert und im Browser angezeigt.

Plugin-Entwicklung beschleunigen

Beim Entwickeln von Shopware-Plugins unterstützt devenv durch schnelle Neuinstallationen:

# Plugin refreshen
bin/console plugin:refresh
bin/console plugin:install --activate MeinPlugin
bin/console cache:clear

Die nativen Geschwindigkeiten von devenv machen diese Zyklen deutlich angenehmer als in virtualisierten Umgebungen.

Illustration einer Shopware-Entwicklungsumgebung mit Code-Fenstern, devenv- und Shopware-Logo sowie Server- und Datenbank-Icons.

Multi-Projekt-Setup

Du kannst problemlos mehrere Shopware-Projekte parallel mit devenv betreiben. Jedes Projekt läuft in seiner eigenen Umgebung auf unterschiedlichen Ports:

# In devenv.nix verschiedene Ports konfigurieren
services.nginx = {
  enable = true;
  virtualHosts."localhost" = {
    listen = [ { addr = "127.0.0.1"; port = 8001; } ];  # Projekt 1
  };
};

Troubleshooting: Typische Stolpersteine vermeiden

macOS-spezifische Anpassungen

Auf macOS mit Apple Silicon (M1/M2) kann es hilfreich sein, Rosetta-Kompatibilität zu aktivieren:

# In devenv.nix für bessere Kompatibilität
nixpkgs.config.allowUnsupportedSystem = true;

Windows/WSL2-Optimierungen

Unter Windows mit WSL2 solltest du darauf achten, dass deine Projektdateien im Linux-Dateisystem liegen, nicht auf dem Windows-Laufwerk:

# Gut: /home/username/projects/shopware
# Schlecht: /mnt/c/Users/username/projects/shopware

Speicherplatz-Management

devenv kann über die Zeit viele Pakete akkumulieren. Mit diesen Befehlen räumst du auf:

# Nicht mehr benötigte Pakete entfernen
nix-collect-garbage -d

# Ältere Generationen löschen
nix-collect-garbage --delete-older-than 30d

Integration in bestehende Workflows

Git-Integration

Füge die generierten devenv-Dateien zu deiner .gitignore hinzu:

# devenv
.devenv/
devenv.lock
.direnv/

Die Konfigurationsdateien devenv.nix, devenv.yaml und .envrc sollten dagegen versioniert werden, damit das ganze Team die gleiche Umgebung nutzt.

CI/CD-Pipelines

devenv eignet sich auch hervorragend für Continuous Integration. In GitHub Actions oder GitLab CI nutzt du die gleiche Umgebung wie lokal:

# .github/workflows/test.yml
- name: Setup devenv
  uses: cachix/install-nix-action@v20
- name: Install devenv
  run: nix profile install --accept-flake-config github:cachix/devenv/latest
- name: Run tests
  run: devenv shell -- bin/phpunit

Erweiterte devenv-Konfigurationen für Shopware

Redis für Session-Handling

Für professionelle Shopware-Entwicklung konfigurierst du Redis als Session-Store:

services.redis = {
  enable = true;
  port = 6379;
};

Elasticsearch für bessere Suche

Auch Elasticsearch lässt sich nahtlos einbinden:

services.elasticsearch = {
  enable = true;
  package = pkgs.elasticsearch7;
};

Mailpit für E-Mail-Tests

Um ausgehende E-Mails während der Entwicklung zu testen:

services.mailpit = {
  enable = true;
  uiListenAddress = "127.0.0.1:8025";
};

Performance-Monitoring und Optimierung

Profiling mit devenv

devenv macht es einfach, Xdebug für Performance-Analysen zu nutzen:

services.php = {
  enable = true;
  extensions = [ "xdebug" ];
  extraConfig = ''
    xdebug.mode = profile
    xdebug.output_dir = /tmp/xdebug
  '';
};

Datenbankoptimierung

MySQL-Performance lässt sich projektspezifisch optimieren:

services.mysql = {
  enable = true;
  settings = {
    mysqld = {
      innodb_buffer_pool_size = "256M";
      query_cache_size = "32M";
    };
  };
};

Migration bestehender Teams zu devenv

Schrittweise Einführung

Wenn du devenv in einem bestehenden Entwicklungsteam einführst, gehst du am besten schrittweise vor:

  1. Pilotprojekt: Starte mit einem kleineren Projekt oder Feature-Branch
  2. Dokumentation: Erstelle eine teamspezifische Setup-Anleitung
  3. Schulung: Führe eine kurze Einführungssession durch
  4. Support: Sei in der ersten Woche für Fragen verfügbar

Kompatibilität mit bestehenden Tools

devenv spielt gut mit anderen Entwicklungstools zusammen:

  • PhpStorm/VS Code: Funktionieren normal, erkennen automatisch die aktiven PHP-Versionen
  • Composer: Läuft nativ und schneller als in Containern
  • npm/yarn: Nutzen die projektspezifischen Node.js-Versionen
  • Git: Keine Änderungen nötig

Kostenaspekte und ROI-Betrachtung

Zeitersparnis quantifiziert

Ein typischer Entwickler startet seine lokale Umgebung 5-10 Mal pro Tag. Bei einer Zeitersparnis von 30-60 Sekunden pro Start summiert sich das auf 15-30 Minuten täglich. Das entspricht bei einem 5-köpfigen Team etwa 6-12 Stunden pro Woche – Zeit, die für wertschöpfende Entwicklungsarbeit genutzt werden kann.

Reduzierte Frustration

Schnellere Feedback-Zyklen führen zu weniger Unterbrechungen im Entwicklungsflow. Entwickler bleiben länger "im Flow" und sind produktiver und zufriedener.

Einheitliche Umgebungen

Mit devenv arbeiten alle Teammitglieder mit exakt denselben Tool-Versionen. Das reduziert "funktioniert bei mir"-Probleme und verkürzt Debugging-Zeiten erheblich.

Warum devenv die Zukunft der Shopware-Entwicklung ist

Die Entwicklung moderner E-Commerce-Lösungen erfordert Geschwindigkeit, Flexibilität und Zuverlässigkeit. devenv bietet all das in einem Tool, ohne die Komplexität von Container-Orchestrierung oder die Limitierungen globaler Entwicklungsumgebungen.

Die native Performance, kombiniert mit der Flexibilität projektspezifischer Konfigurationen, macht devenv zur idealen Lösung für professionelle Shopware-Entwicklung. Teams, die auf devenv setzen, berichten von deutlich gesteigerter Produktivität und weniger technischen Problemen.

Besonders die Watcher-Funktion revolutioniert die Frontend-Entwicklung: Änderungen an Templates oder Styles werden ohne Verzögerung sichtbar, was iterative Design-Prozesse erheblich beschleunigt.

Der Unterschied in der Praxis

Stell dir vor, du entwickelst ein neues Shopware-Theme. Mit traditionellen Setups bedeutet jede CSS-Änderung: Speichern, zum Browser wechseln, Seite neu laden, prüfen, zurück zum Editor. Mit devenv und dem Watcher siehst du Änderungen sofort – der kreative Flow wird nicht unterbrochen.

Bei der Plugin-Entwicklung ermöglichen die schnellen Neuinstallations-Zyklen ein viel iterativeres Vorgehen. Statt lange über Code nachzudenken, testest du schnell verschiedene Ansätze und findest so oft elegantere Lösungen.

devenv transformiert die Art, wie du mit Shopware entwickelst – von einer manchmal trägen, frustrierenden Erfahrung hin zu einem schnellen, flüssigen Workflow, der Spaß macht und produktiv ist. Die initiale Lernkurve amortisiert sich bereits nach wenigen Tagen durch die gesparte Zeit und reduzierte Frustration.

Wenn du bereit bist, deine Shopware-Entwicklung auf das nächste Level zu heben, ist devenv der Schlüssel dazu. Die Technologie ist ausgereift, die Community wächst, und die Vorteile sind sofort spürbar. Deine Kunden werden die schnelleren Entwicklungszyklen zu schätzen wissen, und du wirst nie wieder zu trägen Container-Setups zurückkehren wollen.

Diesen Beitrag teilen