Drupal 9 – Máme se bát?

Kateřina Herda   8. 7. 2020


Drupal 9 je tady! Máte po zkušenostech s migrací na Drupal 8 obavy pustit se do dalšího updatu? Přečtěte si, co všechno nová verze přinesla a na co si dát pozor.

Drupal je volně šiřitelný software umožňující správu a publikování obsahu s nekonečnými možnostmi vlastních šablon. Mezi jeho nejsilnější přednosti patří schopnost spravovat strukturovaná data a od konkurence ho dělí především flexibilita a škálovatelnost. Nejde však úplně o CMS (systém na správu obsahu), jako spíše o CMF (framework pro správu obsahu) – pokud v něm nenajdete vyhovující modul, můžete si vytvořit vlastní. Drupal i komunita kolem něj razí zásadu, že pokud napíšete nějaký kód, půjde použít kdekoliv.

A kdo Drupal využívá? Například NASA, Harvardova univerzita, australská vláda, NBA nebo Tesla. Z Česka pak The Economist, Karlovy Vary, Česká televize, a další.

Přechod na novou verzi

Spousta vývojářů a uživatelů napjatě očekávala příchod nové verze 9. Oficiálně byla zveřejněna 3. června 2020 a je zajímavé, že ve stejný den vyšla i poslední podverze Drupalu 8 (Drupal 8.9). Pokud tedy s přechodem na novou verzi otálíte, nemusíte spěchat – starší verze budou mít podporu do listopadu 2021.

Verze Drupal 9 není ani tak o nových funkcích, jako spíše o upgradu.

Původní vývojář Drupalu Dries Buytaert prohlásil, že Drupal 9 je čistší verze osmičky – platí to  hlavně proto, že je postavený na její architektuře. V praxi to znamená, že zatímco při migraci z verze 7 na 8 měla spousta vývojářů problémy s nekompatibilitou, tady by měl být přechod plynulý. Migrace je nezbytná, pokud si přejete získat plnou funkčnost a pravidelné aktualizace zabezpečení v rámci dvouletých cyklů. Menší updaty pak budou zveřejňované po 6 měsících.

Hlavní rozdíly mezi verzí 8 a 9

Jaké jsou tedy hlavní rozdíly mezi starou a novou verzí? A na co si dát při přechodu pozor?

Update knihoven třetích stran

Hlavním rozdílem je především podpora nových PHP knihoven včetně Symfony ve verzi 4 (nicméně u Drupalu 9 bude kompatibilní i verze Symfony 5). Update spočívá ve vylepšených formulářích, rychlejší kompilaci kontejnerů a lepší funkci hashování/migrace hesel.

Pozor, po listopadu 2021 ztrácí oficiální podporu verze Symfony 3, a tím pádem všechny weby, které jsou na tomto frameworku postavené. Drupal si proto pospíšil s vydáním verze 9, aby dal uživatelům dostatek času na migraci.

Další změnou bude upgrade šablonovacího systému Twig na verzi Twig 2, což se promítne především do vyššího výkonu, vylepšeného prostředí pro vývojáře a lepšího zabezpečení. Dále pak půjde o updaty v CKEditor 4, JQuery a JQuery UI, PHPUnit 8 (Drupal 9 už je kompatibilní i pro budoucí verzi PHPUnit), Doctrine, a další závislosti jak ve frontendové, tak v backendové části.

Kompatibilní moduly

Téměř všechny projekty postavené na Drupalu používají moduly, které vytvořila komunita uživatelů. Dobrá zpráva, většina z nich naštěstí zůstává kompatibilní i s novou verzí. Pro představu jde například o Admin Toolbar, Google Analytics, Token, Devel nebo Pathauto.

Odstranění zastaralých částí API

API Drupalu 9.0 bude vlastně aktualizované API Drupalu 8.9 bez zastaralých/deprecated částí, ale se závislostmi knihoven třetích stran (např. už zmíněné Symfony nebo Twig). O jaká API se jedná? Seznam naleznete na tomto odkazu.

Design

V Drupalu 8.8 přibylo nové vizuální téma administrace Claro, které bude ve verzi 9 výchozím tématem. Je zpracováno v moderním designu s vyšším kontrastem a širší barevnou paletou.

Téma Claro

Od verze 9.1 (která vyjde na přelomu letošního roku) na něj naváže nové frontendové téma Olivero, které nahradí aktuální téma Bartik. Zarazily vás ty zvláštní názvy? Drupal pojmenovává hlavní témata podle svých nejlepších programátorů, toto nese jméno vývojářky Rachel Olivero. Téma má krásný webový design s paletou jasných barev, jednoduchý a profesionální vzhled a je flexibilní.

Téma Olivero

Nepodceňte přípravu

Jak se tedy nejlépe připravit na migraci, aby vás nic nepřekvapilo a přechod na novou verzi byl co nejplynulejší?

  • Držte krok s aktualizacemi Drupalu 8.
  • Ujistěte se, že nepoužíváte zastaralé API moduly.
  • Používejte nejnovější verze závislostí.
  • Zjistěte, zda váš hosting odpovídá požadavkům na Drupal 9.

Drupal 9 nebude podporovat kódy, které jsou v Drupalu 8 označeny jako deprecated. Zde se jedná už o dlouhodobý proces, ale přesto se před migrací přesvědčte, že jste je z webu odstranili. Doporučím použít vývojové prostředí nebo editor, které vás na ně upozorní. V PHPStormu lze například nastavit volání na deprecated metody, a pokud nějakou nalezne, podtrhne ji.

Nejsnazší přechod na Drupal 9 bude z Drupalu 8.8 nebo 8.9, jelikož mají plně kompatibilní API. Pokud je vše updatováno (PHP na verzi minimálně 7.3, MySQL minimálně 5.7.8, případně MariaDB na verzi 10.3.7, PostgreSQL 10 s rozšířením pg_trgm, Apache 2.4.7 a Drush 10)  a ověřili jste kompatibilitu, můžete spustit aktualizaci core codebase na Drupal 9, a poté update.php.

A jak dlouho bude nová verze Drupalu podporovaná? Pravděpodobně záleží na návaznosti frameworku Symfony 4, který má být v listopadu 2023 nahrazen Symfony 5 – zveřejnění Drupalu 10 je tak očekáváno nejspíše během roku 2022. Přibude mimo jiné nová architektura CKEditoru ve verzi 5, která je sice k dispozici už nyní, ale zatím není kompatibilní.

Chcete vědět víc? Podívejte se na oficiální stránky Drupalu, Symfony nebo Twigu, z kterých jsem čerpala.