アップグレードする価値はありますか?
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
関連コンテンツ
Drupal 初心者講座バックナンバー
- Drupal 9/10 初心者講座
- 第 1 回 歴史に見る Drupal の DNA
- 第 2 回 Drupal はフレームワークか?CMS か?他の CMS との比較
- 第 3 回 Drupal の特徴
- 第 4 回 Drupal 9 / 10 のインストール (1)
- 第 5 回 Drupal 9 / 10 のインストール (2)
- 第 6 回 Drupal にコンテンツを投稿してみる
- 第 7 回 Drupal のボキャブラリとタクソノミーの使い方
- 第 8 回 コンテンツ管理における Drupal と他の CMS との比較
- 第 9 回 Drupal のブロックシステム
- 第 10 回 Drupal の標準クエリビルダー Views の使い方
- 第 11 回 Drupal と他の CMS のクエリビルダー機能を比較
- 第 12 回 Drupal の多言語機能と他の CMS やサービスとの比較
- 第 13 回 Drupal の権限設定と WordPress や Movable Type との比較
- 第 14 回 Drupal のテーマシステムについて
- 第 15 回 Drupal の拡張モジュールの選定と使い方
- 第 16 回 Drupal をもっと知りたい方に向けた各種情報