Drupal 11.2.0が公開されました

この記事は以下の記事を翻訳し、掲載しています。
出典:https://www.drupal.org/blog/drupal-11-2-0
 

Drupal 11.2 の新機能

Drupal 11の2回目の機能リリースには、バックエンドとフロントエンドのパフォーマンスとスケーラビリティの向上、フックのOOP(オブジェクト指向プログラミング)対応の導入完了、JSONスキーマのサポート追加、AVIF画像形式への対応、SDCバリアントのサポートなどが含まれます。

Drupal 11.2.0 now available

拡張機能とサイトのインストールが Drupal 11.1.0の3~4倍に高速化

コンテナ再構築とインストーラーの様々な最適化により、Drupal本体や拡張機能のインストールが3~4倍高速化されました。ユーザーインターフェースを使用する場合も同様の改善が見られますが、Drushを使用する場合に特に顕著に現れます。以下の動画では、Drupal 11.2が60のモジュールを5.7秒でインストールする様子を示しており、Drupal 11.1では同じ作業に4倍の時間がかかっています。

GIF animation of installing 60 modules in Drupal 11.1 and 11.2

.moduleファイルは不要になりました!

Drupal 11.2から、.moduleファイルが必要だった最後のAPIもオブジェクト指向のフックとして実装可能になりました!開発者は[#RemoveHook]属性でフックを削除したり、[#ReOrderHook]でフックの順序を変更したり、#[Hook(『preprocess』)]属性でオブジェクト指向のプリプロセスフックを宣言したりできます。すべてのフックがHook名前空間のクラスに記述されている場合、 .moduleファイルはもう必要ありません。

コンテンツエンティティ用の組み込みJSONスキーマ生成

DrupalエンティティをAPI経由で扱う際には、特定のエンティティのデータ構造に関するスキーマがあることが開発者体験にとって重要です。これによりクライアントは、フォーマット付きテキストフィールドのvalueformatプロパティに送信/受信可能な値を知ることができます。

Drupalコアはコンテンツエンティティタイプ用のJSONスキーマを生成できるようになりました。型付きデータ、シリアライゼーション、フィールドAPIが強化され、ストレージ設定に基づいてフィールド単位のスキーマを生成できるようになりました。

コアで提供されるすべてのフィールドタイプは、デフォルトのノーマライザを通じてすぐに使えるJSONスキーマを提供するようになりました。さらに、すべてのコアの型付きデータプラグインもJSONスキーマを提供します。つまり、すべてのコアフィールドはプロパティに対してすぐに使えるJSONスキーマを生成できるようになっています。また、貢献プロジェクトやカスタムモジュールで提供されるほとんどのフィールドタイプも、カスタムノーマライザを提供しないか、非コアの型付きデータプラグインに依存しない限り、自動的にJSONスキーマを生成します。

シングルディレクトリコンポーネントにネイティブバリアントサポートが追加

デザインシステムでは、バリアントは複数のコンポーネントプロパティを事前定義されたセットにグループ化することを可能にします。その後バリアントは、コンポーネントをレンダリングするためのショートカットとして使用できます。フロントエンド開発者は以前からバリアントをpropとして定義できましたが、このアプローチではバリアントの目的を伝えるためのカスタムタイトルや説明がサポートされていませんでした。現在はコンポーネント宣言のルートでvariantsをプロパティとして使用できます。


name:  Card
variants:
  primary:
    title: Primary
    description: ...
  secondary:
    title: Secondary
    description: ...
props: {}
slots: {}

WebPへのフォールバック機能付きAVIFサポートの追加

Drupal 11.2では、画像ツールキットにAVIFサポートが追加されました。AVIFはWebPよりも優れた圧縮率と画像品質を提供し、特に高解像度画像やHDRコンテンツにおいて効果的です。ただしすべてのサーバーがAVIFへの変換をサポートしているわけではありません。そのため、AVIFサポートが利用できない場合にWebPへの変換を行うフォールバックメカニズムが追加されました。

CSS ページ重量の改善

Drupalコアは、コンポーネントベースのCSS構成とページ要素に応じた条件付きの読み込みを長年サポートしてきました。このシステムを活用し、Drupalコアがすべてのページに追加するデフォルトのCSSのサイズが約7KBから1KBに削減されました。これにより、高度にカスタマイズされたサイトを除き、11.2を実行するほとんどのサイトの帯域幅要件とページレンダリング時間が改善されます。

ナビゲーションの改善

モダンなナビゲーションモジュールは、組み込みのトップバー機能も自動的に有効化するようになりました。メニューアイテムが子アイテムのコンテナである場合、「概要」リンクが表示され、適切なページを見つけやすくなりました。その他の多くの不具合なども解決されており、この実験的なモジュールは今後のマイナーリリースで安定版になる予定です。

レシピの依存関係の展開

Drupalのレシピは、必要な依存関係をインストールしてDrupalプロジェクトを起動する特別なComposerパッケージです。レシピが要求されると新しいComposerプラグインがそれを「展開」し、レシピが持つ依存関係をプロジェクトのルートのcomposer.jsonに直接移動させ、レシピをプロジェクトの依存関係から削除します。これにより後でこれらの依存関係を更新することが可能になり、レシピをサイトのアクティブな依存関係として保持する必要がなくなります。

モダンワークフローをより良くサポートするためのUpdate Statusモジュールの変更

Update Statusはアンインストールされた拡張機能のステータスも確認するようになりました。サイトのセキュリティがさらに向上します。

Update Statusモジュールでのauthorize.phpを使用したテーマとモジュールの更新はComposerに対応しておらず、サイトやサイトデプロイのワークフローにさまざまな重大な問題を引き起こす可能性がありました。そのためこのレガシー機能は削除されました。プロジェクトは一般に、Composerを使用してコマンドラインから更新する必要があります。実験的なUpdate Manager (Automatic Updates) も今後この目的で使用されます。

キャッシュ効率の改善

プレースホルダー処理とキャッシュタグ無効化チェックの最適化により、Drupalのレンダリングキャッシュパフォーマンスが大幅に向上しました。その結果動的ページキャッシュ内のキャッシュエントリが小さくなり、キャッシュ依存関係が減少します。これによりキャッシュヒット率が向上し、キャッシュストレージ要件が削減されます。また、キャッシュタグの検索回数が減少することで、HTMLレスポンスごとに永続的なキャッシュストレージバックエンドとの往復通信が削減されます。これはキャッシュタグバックエンドがデータベース、memcache、redisのいずれかを使用している場合にも適用され、動的ページキャッシュのヒット時とミス時の両方でページレンダリングパフォーマンスがやや向上します。高トラフィックサイトでは秒間クエリ数(QPS)が大幅に削減され、キャッシュサーバーがより少ないハードウェア要件でより多くのトラフィックを処理できるようになります。

PHPUnit 11のサポートが追加

PHPUnit 11がテストに使用できるようになりました。デフォルトのバージョンは引き続きPHPUnit 10ですが、composer update phpunit/phpunit --with-dependenciesのコマンドでPHPUnitを更新できます。PHP 8.4でのDrupalコアテストには、PHPUnit 11が最低要件です。

コアメンテナンスチームの更新

Drupal 11.1以降、Emma HorrelとCristina ChumillasがUXマネージャーとして任命されました。

Griffyn Heelsが暫定コアリーダーシップチームファシリテーターとして参加しました。Juraj NemecとDrew Webberが一般コアコミッターとして追加され、Pierre Dureauが暫定フロントエンドフレームワークマネージャーとして追加されました。発表内容はこちらからご覧ください

6名がサブシステムメンテナーとして立候補しました!Nic LaflinがExtension APIのメンテナーに、Lee RowlandsがFormとRender APIの共同メンテナーに、Adam BramleyがNodeモジュールのメンテナーに、Jean ValverdeがSingle-Directory Componentsの共同メンテナーに就任しました。Mark ConroyがStable 9テーマのメンテナーに、Brad JonesがSerializationの共同メンテナーに就任しました。上記の改善の多くはこれらの新しいメンテナーのリーダーシップによるものです!

3人のサブシステムメンテナーが退任しました。Claudiu Cristea、Christian Fritsch、Daniel Wehnerの多大な貢献に感謝します。

最後に、メンターコーディネーターチームにも変更がありました。James Shieldsが参加し、Mauricio Dinarte、AmyJune Hineline、Tara Kingが退任しました。多くのDrupal貢献者は、彼らからメンターとして指導を受けたことに感謝しています!

Drupal 10.5も利用可能になりました

Drupal 10の次のメンテナンスマイナーリリースも公開されました。Drupal 10は、Drupal 12の公開後である2026年12月9日までサポートされます。Drupal 10の長期サポートは6ヶ月ごとに公開されるメンテナンスマイナーリリースで管理されており、それぞれのメンテナンスマイナーリリースは12か月間のサポートを受けられます。この方式により、依存パッケージなどの変更にも柔軟に対応でき、Drupal 11への移行もサイトの準備が整ったタイミングで行えるようになります。

このリリーススケジュールにより、サイトのニーズに最適な戦略である場合はLTSバージョンから次のLTSバージョンへ移行できます。メンテナンスマイナーリリースに関する詳細情報は、新しいメジャーリリーススケジュールに関する投稿をご確認ください。

参加したいですか?

DrupalユーザーからDrupalコントリビューターへの飛躍を目指している方や、チームの専門性向上の一環としてリソースを共有したい方は、Drupalのスキルセットを深めコミュニティに貢献する多くの機会があります。Drupalコントリビューターガイドをご確認ください。2025年10月のDrupalCon Viennaまたは2025年11月のDrupalCon Naraに参加し、セッションに参加したり、ネットワーキングしたり、初めての貢献のためのメンターシップを受けたりしましょう。