Shopware 6: Tipps und Tricks für die lokale Entwicklung

Shopware 6: Tipps und Tricks für die lokale Entwicklung

Wir haben eine Liste nützlicher Tipps und Tricks zusammengestellt, um deine lokale Entwicklungsumgebung für die professionelle Shopware 6-Entwicklung zu optimieren und/oder zu nutzen:

Fehlende Bilder in Ihrer lokalen Umgebung beheben

Du kannst alle Bilder vom Produktionsserver herunterladen (und/oder synchronisieren), aber in den meisten Fällen möchtest du das nicht. Du kannst Shopware einfach anweisen, die URL der Produktionsumgebung voranzustellen. Alle Bilder werden sichtbar und Sie müssen sie nicht manuell herunterladen:

config/packages/dev/shopware.yaml:

---
shopware:
    filesystem:
        public:
            type: "local"
            url: "https://www.example.com/" # Ersetzen Sie dies durch die korrekte URL
            config:
                root: "%kernel.project_dir%/public"

Devcontainer

Nützliche Software-Pakete

"features": {
        "ghcr.io/devcontainers/features/sshd:1": {},
        "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
            "packages": [
                "vim",
                "curl"
            ]
        },
        "ghcr.io/devcontainers/features/docker-in-docker:2": {
            "moby": true,
            "azureDnsAutoDetection": true,
            "installDockerBuildx": true,
            "installDockerComposeSwitch": true,
            "version": "latest",
            "dockerDashComposeVersion": "latest"
        },
        "ghcr.io/devcontainers/features/common-utils:2": {
            "installZsh": true,
            "configureZshAsDefaultShell": true,
            "installOhMyZsh": true
        },
        "ghcr.io/devcontainers/features/github-cli:1": {},
        "ghcr.io/devcontainers-contrib/features/pre-commit:2": {},
        "ghcr.io/devcontainers/features/node:1": {
            "version": "16"
        },
        "ghcr.io/shyim/devcontainers-features/shopware-cli:0": {},
        "ghcr.io/nils-geistmann/devcontainers-features/zsh:0": {
            "setLocale": true,
            "theme": "agnoster",
            "plugins": "ansible colorize dirhistory gh git docker docker-compose",
            "desiredLocale": "de_DE.UTF-8 UTF-8"
        }
},

Nützliche Erweiterungen

"customizations": {
    "vscode": {
        "extensions": [
            "GitHub.copilot",
            "GitHub.vscode-pull-request-github",
            "GitHub.vscode-github-actions",
            "xdebug.php-debug",
            "DEVSENSE.phptools-vscode",
            "DEVSENSE.composer-php-vscode",
            "elagil.pre-commit-helper",
            "esbenp.prettier-vscode",
            "redhat.vscode-yaml",
            "redhat.vscode-xml",
            "DavidAnson.vscode-markdownlint",
            "sibiraj-s.vscode-scss-formatter",
            "mikestead.dotenv",
            "EditorConfig.EditorConfig",
            "marabesi.php-import-checker",
            "fabiospampinato.vscode-statusbar-debugger",
            "formulahendry.auto-close-tag",
            "formulahendry.auto-rename-tag",
            "ms-vsliveshare.vsliveshare",
            "whatwedo.twig",
            "cweijan.vscode-mysql-client2",
            "ms-azuretools.vscode-docker"
        ]
    }
},

Verbindung mit Devcontainer über SSH

Zuerst musst du sicherstellen, dass dieses Feature ghcr.io/devcontainers/features/sshd:1 im Features-Abschnitt in .devcontainer/devcontainer.json enthalten ist. Dann musst du das Passwort für den vscode-Benutzer setzen. Öffne das Terminal in deinem Devcontainer und führe diesen Befehl aus, um das Passwort ohne Interaktion auf `password` (neu) zu setzen:

printf "password\npassword" | sudo passwd ${whoami}

Dann kannst du dich außerhalb deines Devcontainers per SSH verbinden:

ssh vscode@localhost -p2222

In diesem Beispiel gehen wir davon aus, dass du den Standardbenutzer `vscode` in deinem Devcontainer verwendest. Wenn du mehrere Devcontainer hast, kann sich der Port unterscheiden.

Commits zu github.com innerhalb des Devcontainers pushen

  1. Erstelle einen neuen Ordner sudo mkdir -vp /home/${USER:-vscode}/.ssh
  2. Setze die richtigen Berechtigungen mit sudo chown -R ${USER:-vscode}:${USER:-vscode} /home/${USER:-vscode}/.ssh Erstelle eine Konfigurationsdatei im neuen Ordner mit touch /home/${USER:-vscode}/.ssh/config und fügen Sie dann diese Zeilen hinzu:
    Host github.com
            Hostname ssh.github.com
            User git
            Port 22
            PreferredAuthentications publickey
            IdentityFile ~/.ssh/id_rsa
            StrictHostKeyChecking no
            UserKnownHostsFile /dev/null
  3. Die SSH-Schlüsselpaare sind noch nicht im Devcontainer verfügbar. Du hast zwei Möglichkeiten:

    • a) Sie können neue Schlüsselpaare mit `ssh-keygen` erstellen
    • b) (empfohlen) Sie können einfach Ihre vorhandenen Schlüsselpaare im Container einbinden. Alles, was Sie tun müssen, ist, einen neuen Abschnitt in .devcontainer/devcontainer.json hinzuzufügen und dann Ihren Devcontainer neu zu erstellen:
    
            "mounts": [
                "source=${localEnv:HOME}/.ssh/id_rsa,target=/home/vscode/.ssh/id_rsa,type=bind,consistency=cached,readonly",
                "source=${localEnv:HOME}/.ssh/id_rsa.pub,target=/home/vscode/.ssh/id_rsa.pub,type=bind,consistency=cached,readonly"
            ]
            

Shopware hinter einem Reverse-Proxy betreiben

In einigen Fällen möchtest du einen Reverse-Proxy (z.B. Traefik) vor deinen Shopware-Umgebungen betreiben. Füge diese Umgebungsvariable zu deiner .env oder .env.local hinzu, um internen Verkehr über http:// anstelle von https:// zuzulassen, sodass du kein SSL-Termination durchführen musst:

TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
comments powered by Disqus

Ähnliche Artikel

Business Intelligence (BI)

Warum unsere Lösung wählen?

Verwandeln Sie Daten in verwertbare Erkenntnisse mit unserer leistungsstarken Business-Intelligence-Plattform.

Weiterlesen

Mode & Bekleidung

Mode & Bekleidung

Die Mode- und Bekleidungsbranche bewegt sich mit der Geschwindigkeit von Trends. Um der Konkurrenz einen Schritt voraus zu sein, benötigen Marken agile Tools, die mit hoher SKU-Komplexität, schnellen saisonalen Wechseln und anspruchsvollen Kundenerwartungen umgehen können.

Weiterlesen