Drupal 11.4.0が公開されました
この記事は以下の記事を翻訳し、掲載しています。
出典:https://www.drupal.org/blog/drupal-11-4-0
Drupal 11の4回目の機能リリースでは、パフォーマンスがさらに大きく向上しました。同じリクエストを処理する場合、Drupal 11.0および10.6と比較して、データベースおよびキャッシュへのアクセス回数は約3分の1に削減されています。また、JavaScriptとCSSの圧縮効率が15~25%向上したほか、翻訳ファイルの処理速度が大幅に改善され、新しいネイティブのコマンドラインインターフェースの追加や強化されたパスワードハッシュ機能など、多数の改善が含まれています。

Drupal 11.4の新機能
過去10年で最大のパフォーマンス向上(再び!)
Drupal 11.3では、「過去10年で最大のパフォーマンス向上」と発表しました。Drupal 11.4は、再びこの10年で最大のパフォーマンス向上と言えるリリースです。
Drupal 11.4では、エンティティフィールドの読み込み方法が最適化されたことにより、さまざまなリクエストにおいて、Drupal 11.3と比較してデータベースクエリが半減しています。
また、完全にコールドキャッシュの状態でも、Drupal 11.4が実行するデータベースおよびキャッシュへのアクセス回数は、Drupal 11.0または10.6と比較して約3分の1に抑えられ、数百ミリ秒の短縮につながっています。
エンティティの読み込みに加えてエンティティ一覧のクエリも、テーブル結合の数を削減することで大幅に改善されました。これにより低速なクエリが減少します。特にJSON:APIを使用しているサイトにメリットがあると考えられます。
メニューのレンダリングにかかるコストを削減し、レンダーキャッシュのヒット率を向上させるため、メニューブロックに祖先メニューリンク用のCSSクラスを生成しない設定オプションが追加されました。
Drupal CMSのセットアップをはじめとしたレシピの適用が2倍速に
レシピを使用したサイトインストールが従来の約2倍高速になりました。これにより、Drupal CMSやその他のサイトレシピのインストール体験が大幅に向上しています。また、個別のレシピを適用する場合も、処理速度が大きく改善されています。
翻訳ファイルの処理を最新APIで大幅高速化
インストーラー実行時やサイト運用中の翻訳インポートが大幅に高速化されました。66個のプロジェクトと38言語が使用されているテストサイトでは、Drupal 11.3と比較して翻訳更新の確認処理が87%高速化されています。
翻訳ファイルの管理およびインポートを担うAPIについても、大規模なモダナイズが実施されました。すべての.incファイルと、locale.module内の複数の主要なAPIが非推奨となり、パフォーマンスとコード構成を重視したオブジェクト指向(OOP)ベースの実装へと移行しました。
JavaScriptとCSSの圧縮率が15~25%向上
Drupalは、従来のgzip圧縮に加えて、集約されたCSSおよびJavaScriptファイルのBrotli圧縮に対応しました。Brotliは一般的にgzipより15~25%高い圧縮率を実現できるため、Brotli対応ブラウザではページの読み込み速度の向上が期待できます。この機能を利用するには、PHPのBrotli拡張機能ext-brotliが必要です。
core-recommendedで主要な依存パッケージのセキュリティアップデートを即座に適用可能に
drupal/core-recommendedパッケージでは、Guzzle、Twig、Symfony Polyfillsなどの依存パッケージについて、マイナーバージョンを固定しないようになりました。これまでは、より厳格なバージョン制約とComposer 2.9の依存関係の解決方法により、重要なセキュリティ修正を適用するには新しいDrupalリリースを待つ必要がありました。今後は、これらのセキュリティ修正をすぐにインストールできます。ただし、その時点で更新された依存パッケージは、まだDrupalコアとの十分な互換性検証が行われていない可能性があります。本番環境へデプロイする前に、十分な品質保証を実施してください。
実験的な、拡張可能な新しいネイティブコマンドラインインターフェース(CLI)
拡張可能な新しいコマンドラインインターフェース./vendor/bin/drが追加されました。Drupalには従来からハードコードされたコマンドを備えたCLIスクリプトが含まれていましたが、拡張することはできませんでした。この新しいインターフェースは、Drushのメンテナーを含むチームによって開発されています。DrushはDrupalをコマンドラインで操作するための定番ツールとして長年利用されてきました。今後は移行期間に入り、時間をかけてDrushはコアのdrCLIへと段階的に置き換えられていく予定です。既存のDrushコマンドを新しいCLIに対応させる方法については、関連ドキュメントを参照してください。
デフォルトの利用環境を簡素化
デフォルトのインストールプロファイルであるStandardが、よりシンプルな構成になりました。「記事(Article)」と「基本ページ(Page)」のコンテンツタイプはデフォルトでは含まれなくなり、コメント機能はデフォルトで無効になりました。今後のリリースでも、Drupalコアの初期構成をさらに簡素化する予定です。標準の管理インターフェースではNavigationモジュールがデフォルトで有効になりました。従来のToolbarモジュールも引き続き利用可能ですが、Drupal 12で削除される予定です。
Drupal Canvasなどのディスプレイビルダー向けにエンティティ表示管理を改善
コンテンツエンティティバンドルの「表示を管理(Manage display)」タブに、新しい概要ページが追加されました。 これまでは、このタブを開くとデフォルトの表示モードを編集する画面が表示されていました。Drupal 11.4では、バンドルで利用可能なすべての表示モードについて、ラベルや説明を一覧表示し、それぞれの有効・無効を切り替えられるようになりました。この一覧表示により、Drupal Canvasなどのツールとの連携が容易になります。
CKEditorが、集中して編集できる全画面編集に対応
CKEditorを使用するテキストフォーマットで、FullScreenプラグインを設定できるようになりました。このプラグインを有効にするとエディターをブラウザ画面全体に拡大できるため、余計な要素に邪魔されることなく、より快適にコンテンツを編集できます。
より強力なパスワードハッシュ方式に対応
パスワードのハッシュアルゴリズムを設定できるようになりました。新たに利用できるargon2idは、従来のbcryptと比べてより強力なハッシュ方式です。Drupal 12ではargon2idがデフォルトになりますが、Drupal 11.4から利用を開始できます。方式を切り替えると、ユーザーが次にログインした際に、パスワードが新しいアルゴリズムで再ハッシュ化されます。
PHP属性の活用範囲を拡大
コントローラーで利用するルートを、PHP属性を使って指定できるようになりました。モジュールのController名前空間(例:Drupal\example\Controller)にあるクラスで、Symfony\Component\Routing\Attribute\Route属性が指定されているものは、ルート定義として自動的に認識されます。また、1つのクラスに複数のルートを定義することも可能です。この機能は、従来の.routing.ymlによるルート定義を補完するものです。
また、エンティティのサブタイプごとに固有のロジックが必要な場合は、Drupal\Core\Entity\Attribute\Bundle属性を使用してバンドルクラスを定義できるようになりました。これまでは、このような処理を実現するためにentity_type_infoまたはentity_type_info_alterを実装する必要がありました。
.themeファイルを廃止し、残る.moduleファイルもわずかに
Drupalコアに含まれるすべての.themeファイルおよび.theme-settings.phpファイルが、PHPクラスへ移行しました。.themeファイルのサポートは、移行を円滑に進めるためDrupal 12でも引き続き提供される予定ですが、Drupal 13で削除される予定です。
多くの.moduleファイルもPHPクラスへ移行されました。現在では32個のモジュールが完全にPHPクラスへ移行しており、残るモジュールは11個です。(このうち4個は、Drupal 12で削除予定の非推奨モジュールとなっています。)
この取り組みは、2026年1月以降、26名の主要コントリビューターが57件のIssueに取り組むことで実現し、Drupalのコードベースの一貫性がさらに向上しました。また、この取り組みの基盤となった数十年にわたる多数のIssueに貢献した、多くのコミュニティメンバーにも感謝します。
フロントコントローラーがsymfony/runtimeを利用
Drupalは、Symfony Runtimeコンポーネントを統合し、ブートストラップ処理とリクエスト処理を分離しました。これにより、実行環境の準備(ランタイム)とリクエスト処理の責務が明確に分離されます。また、将来的にはFrankenPHPとのより優れた統合も可能になります。
新しいヘルパーメソッドでテストをより高速に作成
カーネルテスト向けの新しいトレイトHttpKernelUiHelperTraitが追加されました。このトレイトを利用すると、カーネルテストからテストサイトへHTTPリクエストを送信し、返されたコンテンツに対してアサーションを実行できます。これにより、多くのブラウザテストをカーネルテストへ置き換えられる可能性があります。ブラウザテストとは異なり、Drupalインストーラーを実行してテストサイトを完全に構築する必要がないため、カーネルテストは高速に実行できます。
新しい実験的な管理テーマ
管理テーマGinが、「Default Admin」という実験的テーマとしてDrupalコアに追加されました。このテーマには新しいダークモードオプションも含まれています。
現時点ではまだデフォルトの管理テーマではありませんが、安定版となった後は、Drupalバックエンドの標準テーマとしてClaroに代わって採用される予定です。モジュールのメンテナーは、自身のモジュールのUIをこのテーマでテストし、フィードバックを提供することが推奨されています。

コアメンテナーチームの更新
Drupal 11.3以降、Andrei Mateescu氏が暫定コアコミッター(General Core Committer)に任命され、さらにContent ModerationモジュールおよびWorkflowsモジュールのメンテナーにも就任しました。また、Edward Wu氏が暫定リリースマネージャーに任命されました。
また、多くの素晴らしいコントリビューターがサブシステムメンテナーの募集に応じ、新たに以下の役割を担当しています。
- Moshe Weitzman氏がコアCLIのメンテナーに就任しました。
- Derek Wright氏がContent ModerationおよびコアCLIのメンテナーに就任しました。
- Kent Richards氏がアクセシビリティの新しいメンテナーに就任しました。
- Max Pogonowski氏がMenu UIおよびトークンシステムのメンテナーに加わりました。
- Jürgen Haas氏とSascha Eggenberger氏が、新しいDefault Adminテーマのメンテナーに就任しました。
- Chris Weber氏がSettings Trayのメンテナーに加わりました。
- Stephen Mustgrave氏がOptionsモジュールおよびMenu UIのメンテナーに就任しました。
- Lucas Hedding氏がImageモジュールおよびAuthentication and Authorizationサブシステムのメンテナーに就任しました。
- Christian López Espínola氏がLanguageモジュールおよびContent Translationモジュールの新しいメンテナーに就任しました。
この期間にメンテナーを退任された皆様にも感謝いたします。
- Heather Brooke Drummond氏がBreakpointモジュールおよびResponsive Imageモジュールのメンテナーを退任しました。
- Brian Gilbert氏がコアメンターの役割を退任しました。
- Wim Leers氏がCKEditor連携、Editorモジュール、JSON:APIモジュール、およびRESTモジュールのメンテナーを退任しました。
- Gareth Goodwin氏がUmamiデモのメンテナーを退任しました。
あなたも参加しませんか?
Drupalユーザーからコントリビューターへの第一歩を踏み出したい方や、チームのスキル向上の一環として学習リソースを共有したい方には、Drupalのスキルをさらに高め、コミュニティへ貢献できるさまざまな機会があります。詳しくは、Drupal Contributor Guideをご覧ください。
また、2026年9月に開催されるDrupalCon Rotterdamにもぜひご参加ください。セッションへの参加や参加者との交流に加え、初めてコントリビュートする方向けのメンタリングも受けられます。
Drupal 12は2026年12月7日の週にリリース予定
Drupal 12は、Drupal 11.5と同時に、2026年12月上旬にリリースされる予定です。Drupal 11.5は長期サポート(LTS)リリースとなり、Drupal 11のサポートは2028年末まで継続される予定です。
