Drupal 8 CMS czy Framework?

Data dodania:

cms

Od lat w różnych zestawieniach systemów zarządzania treścią możemy znaleźć drupala. Nic w tym dziwnego, ponieważ jest jednym z najlepszych i najpopularniejszych systemów. W tym miejscu należy jednak zadać pytanie: czy Drupal 8 to tylko CMS? Czy określając go tym mianem nie odbieramy mu jego wszechstronności?

CMS, WAF

Zanim odpowiemy na to pytanie, musimy wiedzieć czym różni się CMS (Content Management System) od WAF (Web Application Framework). CMS używany jest głównie jako gotowe rozwiązanie do tworzenia witryn internetowych. Posiada wszystkie potrzebne funkcjonalności, aby prezentować treści, zdjęcia, muzykę czy filmy. Jego możliwości można rozszerzyć za pomocą modułów a wygląd zmienić przy pomocy dostępnych skórek. Aby utworzyć prostą witrynę w oparciu o CMS nie trzeba znać żadnego języka programowania, wszystko możemy „wyklikać”.

Po drugiej stronie jest WAF, który najczęściej używany jest do tworzenia złożonych aplikacji internetowych. Stanowi wzór oraz posiada pewne gotowe funkcjonalności dla programistów. Aby posługiwać się możliwościami frameworków niezbędna jest znajomość języka programowania, na którym jest on stworzony. Wszystko, co chcemy uzyskać, musimy umieścić w kodzie. Framework nie posiada również żadnego gotowego panelu administracyjnego.

CMF

Odpowiadając na pytanie zawarte w tytule: Drupal 8 to połączenie tych dwóch definicji, czyli CMF (Content Management Framework). CMF zawiera w sobie zalety obu powyższych rozwiązań. Z jednej strony gotowa struktura witryny internetowej z panelem administracyjnym i możliwością rozszerzenia poprzez skórki i moduły, z drugiej potężne narzędzie dla programistów.

W tym miejscu rodzą się jednak pewne obawy. Czy aby na pewno takie rozwiązanie może zdać egzamin? Czy zbyt dużo możliwości do wykorzystania w jednym systemie nie wprowadzi chaosu? Wątpliwości poważne, jednak Drupal naprawdę świetnie sobie poradził.

Drupal 8 jako CMS pomimo dużo większych możliwości nadal waży niewiele, a jego instalacja i struktura bazy danych jest nawet łatwiejsza i bardziej przejrzysta niż w poprzedniej, siódmej odsłonie. Nadal ma dobry system zawartości oraz taksonomii, gotowy panel konfiguracji, raportowanie i oczywiście mnóstwo gotowych skórek oraz modułów do wykorzystania.

Drupal 8 jako WAF to wszystko, co najlepsze w Symfony, czyli wzorzec MVC bez jasno określonej struktury modelu oraz zbiór niezależnych komponentów. Dependency Injection, Service Container czy Event Subscriber, wszystko to znajdziemy w najnowszej wersji drupala. Tak, jak każdy dobry framework, drupal posiada swój system szablonów w oparciu o Twig ale możemy również użyć najnowszych technologii javascript, takich, jak ReactJS lub VueJS.

Dzięki takim możliwościom drupal 8 stał się bardzo wszechstronnym systemem, który może być wykorzystany do prostych stron internetowych i z którym mogą pracować developerzy nie znający języka PHP, ale posiadający szeroką wiedzę z zakresu tworzenia struktury witryny na bazie panelu administracyjnego, dostępnych modułów i skórek. Z drugiej strony drupal 8 może być wykorzystany przez programistów, którzy nie znają dobrze jego struktury CMS, do tworzenia zaawansowanych aplikacji.

Największą zaletą drupala jest jednak nie jego opcja wykorzystania i jako CMS i jako WAF, ale korzystanie z obu możliwości w jednym projekcie. Jeśli w głównej mierze chcemy wykorzystać drupala jako framework, to nie znaczy, że nie możemy korzystać z gotowych rozwiązań, takich, jak system zawartości, panel admina czy moduły. Wręcz przeciwnie - drupal idealnie scala oba te podejścia. Encje zawartości, użytkowników itp. możemy w łatwy sposób użyć w naszym kodzie aplikacji i dostosować według naszych potrzeb. Takie podejście ułatwia pracę, gdyż nie musimy tworzyć wszystkiego od nowa lecz użyć gotowych i sprawdzonych rozwiązań.

Oczywiście nie trzeba od razu wykorzystywać całej struktury drupala. Jeśli chcemy użyć tylko pojedynczych funkcjonalności to taki pomysł również się sprawdzi.

Przykładowo:

Używamy drupala w głównej mierze jako WAF, ale nie lubimy pisać skomplikowanych zapytań do bazy danych?

Możemy użyć modułu views do „wyklikania” zapytania, a później pobrać gotowy widok do naszego kodu.

Podoba nam się system taksonomii drupala i nie chcemy tworzyć nic nowego?

Stworzone słowniki również możemy wykorzystać i dostosować do naszego projektu.

Podobnie i w odwrotnym podejściu: tworzymy prostą witrynę w oparciu o CMS, jednak mamy do wykonania krokowy, skomplikowany formularz?

Nic nie stoi na przeszkodzie, aby wykonać go w oparciu o Form API.

Takich przykładów można by wymieniać jeszcze wiele, gdyż drupal 8 został tak zaprojektowany, aby można go było użyć na wiele sposobów, w różnych projektach i przez specjalistów z odmiennymi umiejętnościami i preferencjami.

Podsumowanie

Drupal 8 jest wszechstronną platfromą. Nie jest to już tylko system CMS, ale potężne narzędzie do tworzenia witryn oraz aplikacji internetowych, łączące w sobie zalety systemu CMS oraz frameworku. Pomimo tak wielkich możliwości jest prosty w obsłudze i może być wykorzystany przez różnych develeperów.