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

Einführung in GitHub Workflows: Automatisierung für moderne Softwareentwicklung

Einführung in GitHub Workflows: Automatisierung für moderne Softwareentwicklung

GitHub Workflows sind Automatisierungsprozesse, die in GitHub Actions konfiguriert werden, um wiederkehrende Aufgaben wie Builds, Tests oder Deployments zu automatisieren. Erfahren Sie, wie GitHub Workflows aufgebaut sind, welche Vorteile sie bieten und wie Sie sie optimal nutzen können…

Weiterlesen
Gefahren im Griff: Das ultimative Risk-Management für Shopbetreiber

Gefahren im Griff: Das ultimative Risk-Management für Shopbetreiber

Für Shopbetreiber, ob stationär oder online, ist das Risikomanagement ein unverzichtbarer Bestandteil des Geschäfts. Risiken wie Lieferkettenprobleme, Zahlungsbetrug, rechtliche Verpflichtungen oder technologische Ausfälle können den Geschäftsbetrieb erheblich…

Weiterlesen

Der hreflang-Guide für internationales SEO

Der hreflang-Guide für internationales SEO

In einer globalisierten Welt wird es immer wichtiger, Websites auf internationale Zielgruppen auszurichten. Doch wie stellen Sie sicher, dass Ihre Inhalte in den richtigen Regionen und Sprachen gefunden werden? Genau hier kommt hreflang ins Spiel. Dieser Guide erklärt alles, was Sie über hreflang-Tags wissen müssen, um Ihr internationales SEO zu optimieren.

Weiterlesen