Projekt powstał przy okazji zdalnej konfiguracji Syliusa — całkowicie przez SSH, z telefonu. Kroki konfiguracyjne były na tyle powtarzalne, że warto było je zautomatyzować, więc złożyłem boilerplate DDEV. Zanim uznałem go za gotowy, ktoś udostępnił go publicznie — opublikowałem go więc jako wczesną alfę i rozwijałem dalej.

Po roku użytkowania wewnętrznego wyszło v1.0.0 — z pełnym wsparciem dla Syliusa 2.x, czystą strukturą i wszystkim, czego używam na co dzień. Następnego dnia pojawiło się v1.0.1 z poprawkami dla różnych platform.

Dlaczego konfiguracja Syliusa bez narzędzi jest uciążliwa

Sylius 2.x ma nietrywialną konfigurację lokalną. Wymaga PHP 8.4, Composera, bazy danych, serwera WWW z poprawnymi regułami rewrite, Node.js i Yarn do kompilacji assetów panelu admina (opartych na Webpack Encore) oraz binarki Symfony do zadań konsolowych. Sprawne uruchomienie tego wszystkiego na różnych maszynach — Windows, macOS, Linux — bez środowiska kontenerowego jest zawodne. Wersje się rozjeżdżają, zmienne środowiskowe różnią się, ścieżki kolidują.

DDEV rozwiązuje to, deklarując całe środowisko jako konfigurację. Boilerplate ma wbudowane właściwe wersje i łączy je razem, żeby nikt nie musiał tego rozgryzać ręcznie.

Co jest konfigurowane

Plik .ddev/config.yaml ustawia:

  • PHP 8.4 z apache-fpm (Sylius 2.x wymaga PHP 8.2+; 8.4 to obecna stabilna wersja)
  • MariaDB 11.8 — najnowsza stabilna, z upload_dirs dostosowanym tak, żeby wykluczyć media/, node_modules/ i backups/ z synchronizacji Mutagen na macOS
  • Composer 2
  • Porty 8123 (HTTP) i 8443 (HTTPS), żeby unikać konfliktów z innymi lokalnymi projektami
  • Xdebug wyłączony domyślnie — włączany przez ddev xdebug on gdy potrzebny

Co jest w środku

ddev-sylius to szablon projektu oparty na DDEV dla Syliusa 2.x. Sklonuj, uruchom dwie komendy i masz działającą lokalną instancję Syliusa — bez ręcznej konfiguracji wersji PHP, bazy danych ani serwera WWW.

Niestandardowe komendy DDEV dołączone do boilerplate'u:

  • ddev sylius-install — pełna instalacja Syliusa od zera
  • ddev cc — czyszczenie cache
  • ddev dist — instalacja zależności i budowanie assetów (Composer + Yarn)
  • ddev yarn <param> — komendy Yarn wewnątrz kontenera
  • ddev security-checker — skanowanie znanych podatności
  • ddev code-check — weryfikacja standardów kodowania
  • ddev backup / ddev database-import / ddev files-import — backup i przywracanie bazy danych i mediów
  • ddev sylius-cleanup — resetowanie wszystkich danych (przydatne przy testowaniu przepływu instalacji)
  • ddev build-site / ddev rebuild-site — pełna lub częściowa przebudowa projektu

Przetestowane na Windowsie 11 z WSL2 (Ubuntu 24.04), macOS Tahoe (Apple Silicon) i Linuksie z Dockerem.

Jak zacząć

git clone https://github.com/holas1337/ddev-sylius my-projekt
cd my-projekt
ddev start
ddev sylius-install

Tyle. Po kilku minutach masz działający sklep Sylius z panelem administracyjnym, dostępny pod lokalnym URL-em wygenerowanym przez DDEV (domyślnie https://ddev-sylius-boilerplate.ddev.site:8443).

Codzienna praca

Po pierwszej instalacji typowe komendy to:

ddev start             # start środowiska
ddev cc                # czyszczenie cache po zmianach konfiguracji
ddev dist              # przebudowa assetów po zmianach frontendu
ddev code-check        # sprawdzenie standardów przed commitem
ddev backup            # snapshot bazy przed ryzykowną migracją

Do debugowania ddev xdebug on włącza Xdebug, a ddev exec bin/console <komenda> daje bezpośredni dostęp do konsoli Symfony wewnątrz kontenera.

Co zmieniło się w v1.0.1

Poprawka wydana następnego dnia naprawiła kilka rzeczy, które wyszły podczas testów na różnych platformach: dostosowania specyficzne dla macOS dla Mutagen i wyłączeń katalogów uploadu, aktualizacja MariaDB z 11.4 do 11.8 oraz aktualizacja phpMyAdmin do najnowszej wersji.

Repozytorium jest na GitHubie: holas1337/ddev-sylius. Issues i PR-y mile widziane.