ddev-sylius: Boilerplate DDEV dla Syliusa 2.x
ddev,sylius,symfony,open-source,e-commerceProjekt 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_dirsdostosowanym tak, żeby wykluczyćmedia/,node_modules/ibackups/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 ongdy 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 zeraddev cc— czyszczenie cacheddev dist— instalacja zależności i budowanie assetów (Composer + Yarn)ddev yarn <param>— komendy Yarn wewnątrz konteneraddev security-checker— skanowanie znanych podatnościddev code-check— weryfikacja standardów kodowaniaddev backup/ddev database-import/ddev files-import— backup i przywracanie bazy danych i mediówddev 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.