Jakie nowości pojawiły się w Drupalu 9.4? Przeglądamy najnowszą wersję
Nowa, duża aktualizacja Drupala miała premierę 15 czerwca 2022 roku. Możemy w niej znaleźć trochę nowości i zmian, jak na przykład zakładka Manage permissions, dynamiczne określanie minimalnej wersji PHP, zmiany w API, zmiana domyślnego motywu frontendowego z Bartika na Olivero oraz administracyjnego z Seven na Claro. Sporo funkcji oraz bibliotek zostało oznaczonych jako “deprecated”. O tych i innych zmianach opowiemy więcej w dalszej części artykułu.
Czy warto aktualizować Drupala do 9.4?
Tak. Wydanie aktualizacji 9.4 oznacza jednoczesne zakończenie wsparcia bezpieczeństwa dla wersji 9.2.x. Z tego powodu rekomendujemy jak najszybszą aktualizację do wersji minimum 9.3.x, a najlepiej do właśnie wydanej wersji 9.4. Dodatkowo wersja 9.4 wprowadza oczywiście nowe usprawnienia i funkcjonalności, którymi warto się zainteresować.
Co sprawdzić przed aktualizacją Drupala do 9.4?
Najważniejsze będzie sprawdzanie, czy aktualnie używana wersja PHP spełnia przynajmniej minimalne wymagania. Drupal 9.4 wymaga PHP w wersji minimum 7.4, lecz rekomendowaną wersją jest 8.1. Wersja minimalna będzie od tej pory definiowana za pomocą metody \Drupal\Core\PhpRequirements::minimumSupportedPhp(), która bazuje na cyklu wydawniczym, zarówno wersji PHP jak i Drupala.
Kolejnym elementem wartym sprawdzenia jest główny plik .htaccess, który od wersji 9.4 posiada nową sekcję, zawierającą ustawienia dla PHP 8^. Jeśli Twoja aplikacja korzystała wcześniej z PHP 7^ i posiadasz zmiany w htaccess, a chcesz przejsć na PHP w wersji 8^, należy te niestandardowe ustawienia przenieść do nowej sekcji.
Od wersji 9.4 Drupal będzie pokazywał ostrzeżenie, jeśli aktualnie używane połączenie z bazą danych nie wspiera formatu JSON. Połączenie wspierające JSONa będzie wymagane od Drupala w wersji 10.
Najważniejsze zmiany w Drupalu 9.4
Najnowsza wersja wprowadziła sporo zmian i nowości. Przyjrzyjmy się bliżej najważniejszym z nich.
Zakładka Manage permissions
Podczas edycji typów treści widzimy standardowe zakładki do edycji, zarządzania polami, wyświetlaniem formularza oraz treści. Właśnie w tym miejscu dodano opcje zarządzania uprawnieniami. Z poziomu tej zakładki możemy w łatwy sposób zobaczyć pełną listę zdefiniowanych uprawnień, dotyczących jedynie typu treści, który aktualnie edytujemy.
Aby zakładka była widoczna w Twojej encji, należy w jej adnotacji dodać dwa klucze:
- handlers.route_provider.permission,
- links.entity-permissions-form.
Formularz może być też zdefiniowany przez custom routing. Więcej na ten temat znajdziesz w zadaniu dotyczącym funkcjonalności.
Domyślny motyw Olivero w Drupalu 9.4
Zmiana dotyczy instalacji przy użyciu standardowego profilu instalacyjnego Drupala. Od najnowszej odsłony po instalacji ujrzymy nową szatę graficzną, wyróżniającą się na tle starszego motywu Bartik przede wszystkim zaktualizowanym i nowoczesnym designem oraz pełnym wsparciem dla najnowszych funkcjonalności Drupala, takich jak wielopoziomowa nawigacja, embedded media czy Layout Builder. Dodatkowo motyw Olivero jest zgodny z WCAG AA, czyli wytycznymi związanymi z dostępnością treści internetowych. Jest to także duży krok naprzód w celu unowocześnienia wyglądu Drupala.
Źródło: Drupal.org
Domyślny motyw Claro w Drupalu 9.4
Zmiana dotyczy instalacji przy użyciu profilu standardowego oraz Umami. Claro jest czystym, przystępnym i całościowym motywem administracyjnym. Jest częścią inicjatywy Admin UI & JavaScript Modernisation. Na tle motywu frontendowego Bartik wyróżnia się czystością i poczuciem świeżości oraz rozwiązaniami wpływającymi pozytywnie na doświadczenie użytkownika.
Źródło: Drupal.org
Zmiany w standardach kodowania w Drupalu 9.4
Core Drupala do sprawdzania poprawności kodu JavaScripta od dawna używał rozwiązania ESLint. Narzędzie pozostaje niezmienne, lecz od teraz Core korzysta z konfiguracji eslint-config-airbnb-base zamiast eslint-config-airbnb. Każdy, kto używa ESLinta do kodu Reacta lub JSX, powinien dodać eslint-config-airbnb z powrotem do swoich zależności, gdyż używana teraz wersja base nie zawiera zasad dotyczących bibliotek (które opisujemy poniżej).
Coder otrzymał aktualizację 8.3.15, w której zostały uaktualnione standardy tworzenia kodu. Drupal 9.4 jest w pełni zgodny z najnowszą wersją Codera. Pełna lista zmian w wersji 8.3.15 znajduje się w uwagach do wydania.
Co zostało oznaczone jako deprecated w Drupalu 9.4?
Oznaczony jest moduł Color, który zostanie całkowicie usunięty w Drupalu 10. Jeśli nadal mamy potrzebę jego używania, możemy skorzystać z modułu contrib. Analogiczna sytuacja jest w przypadku modułu Hypermedia Application Language (HAL). Jeśli moduł jest potrzebny, trzeba zainstalować wersję contrib. Moduł Quick Edit jest oznaczony jako deprecated od wersji 9.4, planowane usunięcie w Drupalu 10. Istnieje wersja contrib, której należy użyć. W przypadku modułu Forum również jest teraz dostępny contrib. Więcej informacji na temat modułów oznaczonych jako deprecated znajduje się na stronie Deprecated and obsolete modules and themes.
Oprócz modułów, powiększyła się również lista funkcji oznaczonych jako deprecated, którą także można znaleźć na stronie Drupal.org.
Jak radzić sobie z funkcjami deprecated?
Moduł contribowy Upgrade Status będzie do tego idealny. Listuje on wszystkie funkcje deprecated, używane w modułach i skórkach contrib i custom. Dodatkowo można polegać na IDE, które może być wyposażone w funkcjonalność pozwalającą na listowanie funkcji deprecated.
Jakie biblioteki są deprecated od Drupala 9.4?
Modernizr.touchevents. Biblioteka ta była wykorzystywana do wykrywania, czy aktualnie używane urządzenie wspiera touchevents, aby na tej podstawie dostosować zachowanie strony. Biblioteka zastępująca Modernizr.touchevents, czyli core/drupal.touchevents, posiada analogiczną logikę i jest wstecznie kompatybilna. Jeśli korzystaliśmy z funkcji dostarczanych przez bibliotekę Modernizr.touchevents w customowym kodzie, należy pozbyć się tej zależności.
Backbone i Underscore. Pierwsza z tych bibliotek była używana do tworzenia interaktywnych interfejsów użytkownika, druga dostarczała szereg funkcji, tak zwanych “helperów”, które pomagały tworzyć kod szybciej. Drupal Core, a dokładniej biblioteki drupal.editor.admin i drupal.filter.filter_html.admin już z nich nie korzystają. Biblioteki zostaną usunięte w Drupalu 10. Moduły i skórki korzystające z tych bibliotek powinny zostać przepisane.
Drupal 9.4 - podsumowanie
Wydaje się, że Drupal ma się lepiej niż kiedykolwiek. Usystematyzowanie i dobre zaplanowanie roadmapy, zmienienie sposobu myślenia na mniej, ale wcześniej, zmiany granularne, jedna rzecz na raz, przynosi rezultaty w postaci cyklicznych usprawnień Drupala. Nie pozostaje nam nic poza przygotowaniem się do aktualizacji oraz wyczekiwaniem na kolejne. Jeśli potrzebujesz pomocy podczas aktualizacji, nasz zespół wsparcia Drupala chętnie udzieli Ci rad lub przeprowadzi cały proces - od sprawdzenia zgodności, przez samą aktualizacje oraz testy aż do wdrożenia.