ANNAIマガジン
Drupal ロゴ
この記事は「 Drupal 9.1 Is Here: Are You Ready To Upgrade? 」の翻訳です。
この記事の目次

 

アップグレードする価値はありますか?

Drupal 9.1 の安定版リリースは、2020 年 12 月 2 日に予定通り公開されました。前回は「Drupal 8.9 を使用している場合、目新しい機能はさほどないため、急いでDrupal 9.0 にアップグレードする必要はない」とお伝えしました。しかし、今回は違います。

Drupal 9.1 では、PHP 8 のサポートとともに、エキサイティングな機能とアップデートが追加されています(以前、Drupal 9 をPHP 8 互換にすることについて書きました)。

また、Drupal 9.1 では、視覚障害を持たないユーザーと(スクリーンリーダー等の)支援技術向け両方のユーザーインターフェースに大きな変更が加えられていることは、アップグレードを考慮するに十分な理由となります。

新機能

Olivero テーマ

現在ベータテスト中で待望のフロントエンドテーマ「Olivero」が Drupal コアに追加されました。Bartik に代わるモダンで明快なテーマで、今後 Drupal の新しいデフォルトテーマとなる予定です。

このテーマは、全米視覚障害者連合(National Federation of the Blind) の組織技術グループの責任者であったRachel Olivero(1982-2019)にちなんで名付けられました。彼女は有名なアクセシビリティの専門家であり、Drupal コミュニティの貢献者でもありました。

Claro テーマの追加点

Claro は、Drupal 8.8 で実験的なテーマとして追加されました。そして今回の Drupal 9.1 では、エクステンションの管理ページ、ビューの管理ページ、ステータスレポートなど、さまざまな主要ページにデザインが追加されました。また、メディアライブラリにも Claro スタイルのデザインが追加されています。

Composer 2 と PHP 8 のサポート

Drupal 9 は Composer 2 で完全に動作しますので、アップデートすることを強くお勧めします。人気のあるプラグインの多くも更新されています。お使いのプラグインがアップデートされていない場合は、Composer 2 でサポートされるよう、プラグイン作者のためにプルリクエストを作成してはどうでしょう(とても簡単です)。今回のリリースでは、パフォーマンスが大幅に改善され、メモリ使用量も削減されています。

Drupal 9.1 では、PHP 8 のサポートが追加されました。PHP 8 では多くの新しい言語が導入されており、Drupal コアではそれらを使用していませんが(まだ PHP 7.3 をサポートしています)、ユニオン型などの機能をカスタムコードで使用することができます。さらに、2022 年にリリース予定の Drupal 10 では、PHP 8 が必須となる可能性もあります。

さらに、Drupalでレンダリングされる画像であらかじめ登録されているサイズのものは、自動的に遅延ロードに設定されるようになり、コンテンツの読み込みが速くなるなど、ユーザーエクスペリエンスが向上しています。

Drupal の旧バージョンからのアップデート方法

さて、ここで次のような重要な疑問が湧いてきます:「現在、Drupal 7 や 8 を使用しているユーザーは、どのようにして Drupal 9.1 に移行するのか?」

すでに Drupal 9 に移行しているユーザーは、今回のリリースで何か実行する必要があるのでしょうか?

Drupal のバージョンごとに移行のアプローチは異なるため、Drupal の移行のための正しいストラテジーを選択する必要があります。このセクションでは、異なるバージョンからの移行方法を見ていきます。

Drupal 7 からのアップグレード

Drupal 7 のユーザーは、簡単に Drupal 8.9 への移行を実施するか、9.0 または 9.1 に直接移行することができます。Drupal 9/9.1 に直接移行することで、ステップを省略することができます。多言語サイトのアップグレードパスは、Drupal 8.9、9.0、9.1 でも安定しています!(訳注:シンプルかつカスタマイズを多く加えていない Drupal 7 サイトは比較的シンプルに後続バージョンにアップグレードできるツールが用意されています。ただし、複雑なカスタマイズを施された Drupal 7 サイトの場合、Drupal 9 へのアップグレードには相応の手間を要するものになる可能性があることをご理解ください)

Drupal 7からのアップグレード方法については、究極の Drupal 移行ガイドをご覧ください。

Drupal 8 からのアップグレード

Drupal 8 ユーザーの方は、Drupal 8 の終了時期である 2021 年 11 月までは、まだ最新の 8.9 バージョンにアップグレードする時間があります。バグフィックスは継続され、次のバグフィックスは 2021 年 1 月 6 日に予定されています。

Drupal 8.8 を使用しているサイトは、セキュリティサポートが受けられなくなります。つまり、今回のアップデート以降、Drupal 8.9/9 への移行が重要になります。

Drupal.org によると、最も利用されている drupal.org プロジェクトのトップ 1000 のうち、 85 %が Drupal 9 向けにアップデートされているため、あなたのサイトに必要なモジュールやテーマのほとんどが Drupal 9 互換である可能性が高いと言えます。

Drupal 9 からのアップグレード

Drupal 9.1 は、Drupal 9 のマイナーリリースです。Drupal 9 からアップデートすることで、パブリック API の後方互換性(BC)を崩すことなく新機能を利用することができます。Drupal 9 は今後も Symfony 4 を必要としますが、Drupal 9.1 では Symfony 5 をサポートするための調整がすでに行われています。

これらすべてのアップデートは、Drupal 9 を Symfony 5 および 6(まだリリースされていません)との前方互換性を持たせるために行われています。また、Drupal 10 のリリースは 2022 年半ばに予定されており、これらの新しいアップグレードが順調に実施されていくことが見込まれています。

アップデートの実行

このセクションでは、Drupal 8.9 または Drupal 9 からのアップデートについてのみ説明します。複数のバージョンをまたいでアップデートすることは可能であるものの、多くの注意や配慮が必要です。これについて、このセクションでの説明は省きます。

まず、すでにプロジェクトで Olivero テーマを使用している場合は、以下のコマンドを実行して Olivero を削除します。Drupal 9.1 では Olivero がコアに含まれているので、これを行う必要があります。

$ composer remove drupal/olivero

Drupal 8.9 または Drupal 9 からのアップグレードを開始するには、以下のコマンドを実行します。

$ composer require drupal/core:^9.1

drupal/core-composer-scaffold:^9.1 --update-with-dependencies

もし、あなたのプロジェクトが drupal/core-recommended を使用している場合は、上記のコマンドで drupal/core の代わりにそれを使用します。また、上記のコマンドでは、推奨される Drupal Composer テンプレートを使用している必要があります。このコマンドを実行すると、依存関係に関するエラーが発生する場合があります。

依存関係の問題は多岐にわたるため、ここではすべてを説明しません。まずは、上記のコマンドの --update-with-dependencies フラグを --update-with-all-dependencies フラグに置き換えて、もう一度試してみてください。

Drupal 9.1 は、思い切って導入する準備ができているユーザーにとっては有望なアップデートと言えそうです。まだ迷っている方は、なぜ Drupal 9 へのアップグレードが重要なのかについての説明をご一読ください。

コメント欄(訳注:オリジナルポストの末尾)で、ぜひあなたの Drupal 9 の経験を共有したり、他のユーザーからの情報を参考にしてください。

投稿者:Axelerant OG、Jayati Kataria
 

ANNAI株式会社の写真

この記事を書いた人 : ANNAI株式会社

ANNAIは、2009年からDrupal専門のWebシステム開発会社として、世界規模で展開するグローバル企業や大学・自治体を中心に数多くのWebソリューションを提供。
CoreやModuleのコントリビューターなど、Drupalエキスパートが多数在籍。国内ユーザーコミュニティへも積極的にコミットし、定期的なセミナーの等の開催を通じて、オープンソース技術の普及や海外コミュニティとの緊密な連携を図っている。
Webシステムの企画・開発〜デザイン、クラウド運用までをワンストップで提供する他、Drupalのコーディングを評価する"Audit業務"や最適なモジュールの調査・選定等、幅広いコンサルティングを行っている。Drupalアソシエーション公式パートナー。

関連コンテンツ