Symfony czy Drupal: kiedy wybrać framework zamiast CMS-a.
Oba narzędzia są napisane w PHP, a Drupal sam korzysta z komponentów Symfony. Mimo to rozwiązują różne problemy — i pomyłka w wyborze kosztuje dopiero po roku, gdy projekt zaczyna rosnąć.
Krótka odpowiedź.
Wybierz Drupala, gdy sednem projektu jest treść: artykuły, oferty, katalog, wersje językowe, redaktorzy z różnymi uprawnieniami. Wybierz Symfony, gdy sednem jest logika biznesowa: procesy, rozliczenia, panel klienta, integracje. Treść to coś, co się publikuje. Logika to coś, co się wykonuje.
Czym te narzędzia różnią się w praktyce.
Drupal to gotowy system zarządzania treścią. Po instalacji masz panel administracyjny, typy treści, użytkowników, role, tłumaczenia i tysiące modułów. Symfony to framework: zestaw klocków, z których programista buduje aplikację. Po instalacji nie masz nic, co mógłby zobaczyć klient — za to nic też Cię nie ogranicza.
Od wersji 8 Drupal jest zbudowany na komponentach Symfony, więc pod spodem działają podobne mechanizmy. Różnica leży w tym, ile decyzji ktoś podjął już za Ciebie.
Kiedy Drupal jest lepszym wyborem.
- Treść dodają osoby nietechniczne i potrzebują wygodnego panelu od pierwszego dnia
- Serwis ma kilka wersji językowych
- Potrzebujesz ról i uprawnień: redaktor, korektor, administrator
- Struktura treści jest złożona, ale nadal jest to treść — powiązane wpisy, kategorie, katalogi
- Budżet nie przewiduje pisania panelu administracyjnego od zera
Kiedy wybrać Symfony zamiast Drupala.
- Większość funkcji to własne procesy: zamówienia według niestandardowych reguł, rezerwacje, wyceny, obieg dokumentów
- Aplikacja jest przede wszystkim API dla aplikacji mobilnej lub innych systemów
- Model danych nie przypomina „stron z polami” — to raczej transakcje, stany i zależności
- Wydajność i pełna kontrola nad zapytaniami do bazy są wymaganiem, a nie życzeniem
- Treści redakcyjnej jest niewiele albo nie ma jej wcale
Sygnał ostrzegawczy: jeśli w Drupalu większość pracy to wyłączanie i obchodzenie jego mechanizmów, projekt prosi się o framework.
Koszt: na starcie i po trzech latach.
Na starcie Drupal jest tańszy wszędzie tam, gdzie wykorzystujesz to, co już ma. Panel redakcyjny napisany od zera w Symfony to tygodnie pracy, które w Drupalu dostajesz w dniu instalacji. Po kilku latach rachunek może się odwrócić: aplikacja z dużą ilością własnej logiki wciśniętej w CMS jest trudniejsza w aktualizacji, bo każda nowa wersja Drupala wymaga sprawdzenia własnego kodu. W Symfony aktualizujesz tylko to, co sam napisałeś i świadomie dołączyłeś.
W obu przypadkach strona wymaga potem opieki — o tym, z czego składa się ten koszt, piszę w tekście ile kosztuje utrzymanie strony Drupal.
Rozwiązanie mieszane.
Wybór nie musi być zero-jedynkowy. Często sprawdza się podział: Drupal obsługuje część publiczną i treść, a osobna aplikacja Symfony — logikę biznesową, obie połączone przez API. Redaktorzy dostają wygodny panel, programiści czysty kod bez kompromisów. Ceną jest utrzymywanie dwóch systemów zamiast jednego, więc ma to sens dopiero przy większych projektach.
Pytania, które rozstrzygają wybór.
- Kto będzie korzystał z systemu częściej: redaktorzy czy klienci wykonujący operacje?
- Ile funkcji z listy wymagań Drupal ma gotowych, a ile trzeba napisać?
- Czy za dwa lata dojdzie więcej treści, czy więcej procesów?
- Kto będzie to utrzymywał i jakie ma doświadczenie?
Najczęściej zadawane pytania.
Kiedy wybrać Symfony zamiast Drupala? Gdy sednem projektu jest logika biznesowa, a nie treść: własne procesy, rozliczenia, panel klienta, API dla innych systemów. Jeśli większość pracy polegałaby na obchodzeniu mechanizmów Drupala, lepiej zacząć od frameworka.
Czy Drupal jest zbudowany na Symfony? Tak. Od wersji 8 Drupal korzysta z komponentów Symfony, między innymi do obsługi żądań HTTP, routingu i kontenera usług. To nadal osobny system z własnymi konwencjami, ale programista Symfony odnajdzie w nim znajome elementy.
Co jest tańsze: Symfony czy Drupal? Dla serwisu opartego na treści tańszy jest Drupal, bo panel redakcyjny, uprawnienia i wersje językowe są gotowe. Dla aplikacji z własną logiką tańsze w dłuższym okresie bywa Symfony, bo nie płacisz za dopasowywanie CMS-a do zadań, do których nie powstał.
Czy można połączyć Symfony i Drupala? Tak. Częsty układ to Drupal jako system zarządzania treścią i osobna aplikacja Symfony obsługująca logikę biznesową, połączone przez API.
Podsumowanie.
Drupal oszczędza pracę, gdy projekt kręci się wokół treści. Symfony oszczędza ją, gdy kręci się wokół logiki. Jeśli masz serwis na starszym Drupalu i zostajesz przy CMS, zobacz, jak wygląda migracja Drupal do aktualnej wersji. Jeśli dopiero wybierasz między systemami CMS, pomoże tekst jak wybrać CMS dla swojej firmy.