Framework Symfony i Drupal- bardzo dobre połączenie
Drupal to znakomity i elastyczny CMS typu Open Source. Niemniej jednak jego wcześniejsze wersje miały nieco problemów... PHP w ostatnich latach szybko ewoluował. Niestety, Drupal pozostawał nieco w tyle, zwłaszcza jeśli chodzi o adoptowanie oraz promowanie konkretnych wzorców inżynierii oprogramowania. Z tego powodu programiści działający w Drupalu często musieli wymyślać kreatywne sposoby na rozwiązywanie problemów napotykanych w czasie kodowania. Aby wyjść naprzeciw właściwym praktykom oraz wesprzeć programistów, Drupal w 2012 roku podjął ważny krok. Otóż opracował na nowo swój rdzeń, korzystając z komponentów Symfony.
Jakie są główne zmiany między Drupal 7 a Drupal 8 i jaki wpływ mają na użytkowników?
Początkowo Drupal miał bardzo precyzyjny i proceduralny kod. Wersja 8 korzysta bardziej z programowania obiektowego, szczególnie w bazach danych API. Podtrzymano przy tym metody proceduralne, aby uniknąć dużej zmiany od tego, do czego byli już przyzwyczajeni programiści specjalizujący się w Drupalu.
Użycie frameworka Symfony w Drupal 8 oznaczało, że ów CMS stał się bardziej skierowany w stronę programowania obiektowego. Było to widoczne szczególnie po wprowadzeniu kontrolerów oraz service containera (więcej o tym w kolejnym akapicie).
Dzięki temu obecnie programistom działającym we frameworku Symfony będzie znacznie łatwiej korzystać z Drupala, gdyż w naturalny sposób korzysta on z komponentów Symfony.
Jakie są korzyści wynikające z wprowadzenia Symfony w Drupal 8?
Jedną z najważniejszych korzyści jest przybliżenie się do rozwiązań biznesowych. Dzięki wprowadzeniu Symfony, programiści mają teraz do dyspozycji narzędzie zwane service container, które pozwala używać wielokrotnie danej funkcjonalności kodu w dowolnym miejscu. Jest to narzędzie, którego wcześniej bardzo brakowało.
Warto jednak zaznaczyć, że jeżeli ktoś cały czas korzystał jedynie z Drupala, a następnie przesiadł się do Drupal 8, może mieć trudności z zaadaptowaniem się. Niemniej jednak Symfony standaryzuje procesy kodowania, dzięki czemu jest ono bardziej przystępne.
Które komponenty frameworka Symfony zostały użyte w Drupal 8?
Główne komponenty to:
- Console
- Dependency Injection (service container)
- Event Dispatcher
- Http Foundation
- Http Kernel
- Routing
- Serializer
- Translation
- Validator
Komponenty od Symfony są takie jak sam framework – pozwalają na skalowalność i elastyczność. Jak wspomniano wcześniej, service container pozwala wykorzystać ponownie każdą funkcję stworzoną w Drupalu w innym miejscu w kodzie. Znacznie przyspiesza to modyfikowanie aktualnej aplikacji i jej funkcji. Narzędzie to pomaga także w procesie usuwania błędów, gdyż pozwala ustalać funkcje obiektów.
Jakie inne funkcje zasługują na uwagę?
Istnieje komponent o nazwie Drupal Console, który powstał przy użyciu komponentu Symfony Console. Służy on do usuwania błędów oraz tworzenia listy zdarzeń w aplikacji. Jest on bardzo przydatny do tego zadania. Dzięki wykorzystaniu wspomnianego dependency injection containera. Event Dispatcher może posłużyć do uzyskania wglądu we wszystkie zdarzenia w aplikacji. Drupal Console zaciera różnice między Symfony a Drupal, jeśli chodzi o debugging.
Wersje frameworka Symfony a wersje Drupala
Symfony posiada stały cykl wydawania nowych wersji – każda pomniejsza wersja (np. 3.3) jest wydawana co każde 6 miesięcy. Nowa, główna wersja jest z kolei wydawana co 2 lata. W rezultacie każda główna wersja składa się z 5 mniejszych, jak 3.0, 3.1, 3.2, 3.3, 3.4 aż w końcu dochodzimy do wersji 4.0. Cały proces i plany wydawania i utrzymywania kolejnych wersji można znaleźć tutaj.
Warto jednak zaznaczyć ważny fakt odnośnie do ostatniej mniejszej wersji (3.4) oraz ostatniej głównej (4.0). Otóż są one niemal identyczne. Różnią się jedynie tym, że usunięto niektóre funkcje. Jest to ważny fakt z punktu widzenia samego Drupala.
Z jakiej więc wersji Symfony korzysta Drupal?
Wersja 8.5 wymaga wersji 3.4 lub wyższej, ale nie wyższej, niż 4.0. Oznacza to, że 8.5 ma wszystkie cechy Symfony 4.0, gdyż są one dokładnie takie same jak w przypadku 3.4.
Podobnie jest w przypadku wersji 8.6. Oznacza to, że kolejne wersje frameworka Symfony nie będą miały tak dużego znaczenia, gdyż dalej będą najbardziej korzystać z cech Symfony 3.4. Jak przyznają twórcy, Drupal 8 jest oparty o Symfony 3. Dopiero Drupal 9, który ma zostać wydany w 2020 roku, będzie zbudowany na podstawie Symfony 4 lub 5.
Podsumowanie
Jak zatem widać, wprowadzenie frameworka Symfony do Drupal przyniosło wiele korzyści. Dzięki niemu popularny CMS funkcjonuje znacznie lepiej oraz zaadaptował zalety cenionego frameworka.