MerixGames

26 marca 2015

/ code & tools

Drupal 8 – nowy, szybszy, lepszy…

Michał Kopydłowski

W ostatnim czasie pojawiło się wiele plotek na temat odsłony nowego Drupala 8. Zainteresowani zadają wiele pytań i przygotowują się na nadchodzące nowości. Kiedy w końcu wyjdzie wersja stabilna? Czy połączenie z framework-iem Symfony2 wyjdzie CMS-owi na dobre?

Te i inne pytania z pewnością nurtują wszystkich oczekujących nowej wersji popularnego CMS-a. Są one uzasadnione nie tylko ze względu na obietnice "szybszy", "nowoczesniejszy", "lepszy", ale również z uwagi na fakt, iż większość kodu została napisana praktycznie od zera oraz dodano komponenty Symfony2.

Wybrane nowe funkcjonalności i usprawnienia

  • szybka edycja treści bez wchodzenia w pełny tryb edycji
  • poprawiony podgląd treści przed publikacją odzwierciedlający rzeczywisty wygląd strony
  • łatwiejsze zapisywanie i zarządzanie wersją roboczą treści
  • bardziej intuicyjny interfejs tłumaczeń
  • responsywne wbudowane skórki
  • nowy moduł Breakpoints do wdrażania responsywności
  • wbudowany moduł Views
  • wbudowany WYSIWYG (CKEditor)
  • więcej wbudowanych typów pól oraz możliwość dołączania pól do formularzy
  • zarządzanie wyglądem i formatem pól formularzy
  • wbudowana i poprawiona wielojęzyczność
  • obiektowa architektura dzięki framework-owi Symfony2
  • zarządzanie konfiguracją poprzez pliki konfiguracyjne yml
  • użycie Twig-a do tworzenia szablonów
  • poprawiona wydajność front-endu
  • nowy mechanizm aktualizacji

Wielojęzyczność

Na szczególną uwagę zasługuje z pewnością poprawiona wielojęzyczność, która nie dość że w Drupalu 7 wymagała instalacji wielu modułów, to jeszcze nie była wolna od błędów. Drupal 8 oferuje nam wbudowane kompletne i właściwe podejście do tłumaczenia treści. „Właściwość” polega na tym, że tłumaczenie encji nie powoduje utworzenia nowej treści w systemie (jak to miało miejsce w Drupalu 7), tłumaczone są jedynie pola encji. Najwyższy czas aby tak podstawowa funkcjonalność jak wielojęzyczność działała „out-of-the-box”.

Symfony2

Drupal jest oparty na Symfony2

Niewątpliwie nową jakość do Drupala 8 wprowadza zastosowanie komponentów framework-a Symfony2. Obiektowa architektura oraz sprawdzony wzorzec MVC sprawiają, że kod jest uporządkowany i spójny. Wymusza to również stosowanie dobrych praktyk dla twórców modułów, co jest bezcenne z perspektywy dewelopera i nie pozostaje bez znaczenia dla klienta, choć nie wszyscy zdają sobie z tego sprawę.

Deployment

Jedną z największych bolączek Drupala był od zawsze skomplikowany proces wdrażania zmian wiążący się z faktem, iż ustawienia konfiguracyjne zapisywane są w bazie danych. W Drupalu 8 otrzymujemy możliwość zarządzania konfiguracją poprzez pliki konfiguracyjne yml. Dzięki temu konfigurację możemy wersjonować, a przy okazji odciążamy bazę danych.

Twig

Do tworzenia szablonów w Drupalu 8 służy system szablonów Twig. Jest szybki i elastyczny, jednakże, co najistotniejsze, jest bezpieczny. Szablon służy do tego do czego jest przeznaczony, a więc do prezentacji widoku i wszelkie złe praktyki polegające na umieszczaniu logiki w szablonach nie powiodą się (na szczęście), gdyż Twig na to nie pozwoli.

Wydajność

Badania wykazały, iż to najczęściej front-end jest powodem długiego ładowania strony z powodu styli, skryptów czy obrazków. W związku z tym poprawiona została agregacja styli oraz skryptów. Ponadto zwiększono wydajność kompresji obrazków, a także dodano ładowanie obrazków z wykorzystaniem metody „lazy loading”. Dzięki tym zabiegom strony w Drupalu 8 mają ładować się szybciej.

Migracja

Moduł Migrate w Drupal 8

Dotychczasowy sposób aktualizacji został porzucony. Jego niedoskonałość ujawniała się zwłaszcza przy bardziej złożonych serwisach, gdzie próba migracji najczęściej kończyła się niepowodzeniem. Drupal 8 posiada wbudowany mechanizm importu oparty o moduł Migrate. To podejście pozwala na import zarówno z Drupala 7 jak i 6, a także z innych źrodeł. Nowe podejście aktualizacji wygląda obiecująco, jednakże za wcześnie jeszcze by jednoznacznie ocenić niezawodność takiej migracji. Pamietać należy również o modułach i konieczności ich istnienia dla wersji 8, a to na chwilę obecną (Drupal 8 beta) wciąż jest w fazie rozwoju.

Czy trzeba będzie się uczyć Drupala od nowa?

Użytkownik Drupala 7 bez problemu odnajdzie się w Drupalu 8, gdyż większość zmian w panelu zarządzania to drobne modyfikacje lub zmiany wizualne.

Deweloperów natomiast (którzy nie spotkali się wcześniej z Symfony2) czeka niemałe wyzwanie. Nauka Symfony2 w całości nie będzie konieczna, niemniej  opanowanie podstaw działania framework-u oraz zapoznanie się z mechanizmami, na których się opiera będzie jak najbardziej wskazane.

Podsumowanie

Nie co dzień zdarza się sytuacja by jeden z najpopularniejszych CMS-ów na rynku, z ugruntowaną pozycją i setkami tysięcy użytkowników decydował się na przepisanie kodu praktycznie od początku. Krok odważny choć z pewnością ryzykowny. Czas pokaże czy był to ruch słuszny, jednakże trudno sobie wyobrazić by było inaczej. Architektura obiektowa to lepszej jakości kod, a lepszej jakości kod to lepszej jakości produkt, a więc dokładnie to czego oczekują użytkownicy - platformy nowoczesnej, przyjaznej, łatwej w rozbudowie, wydajnej i bezpiecznej. Drupal 8 spełnia wszystkie te warunki z korzyściami zarówno dla właścicieli serwisów jak i deweloperów!A

Artykuł ukazał się także na łamach portalu MamStartup.pl

Strona używa plików cookies. Wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.