Drupal 8には、YAML設定ファイル用にKwalify(http://www.kuwata-lab.com/kwalify/)に触発されたスキーマ/メタデータ言語のサポートが含まれています。Kwalify自体はRubyで書かれており、形式を少し調整する必要があったため、Kwalifyのすべての詳細が直接適用されるわけではありませんが、かなり近いものです。
チートシート
すぐに理解するための便利な例として、このチートシートを見てください。まだ質問がある場合は、読み続けてください:
![]()
Drupal 8の設定システムは、設定を統一的に処理します。デフォルトでは、Drupalは設定データをデータベースに保存しますが、YAMLファイルにエクスポートして、バージョン管理で設定を管理できます。ただし、特定の目的のために設定値をオーバーライドする必要がある場合があります。Drupal 7では、settings.phpで設定の条件付きオーバーライド値で通常埋められるグローバル変数$confがありました。このシステムの大きな欠点は、オーバーライドが実際の設定に移行したことでした。オーバーライドされた値を含む設定フォームが保存されると、条件付きオーバーライドが実際の設定ストレージに入りました。
Drupal 8には、次のような設定オーバーライドシステムが導入されています:
デフォルトでは、Drupal 8の設定情報はデータベースに保存されます。
設定ファイル形式(YAML)
拡張機能(モジュール、テーマ、プロファイル)は、YAMLファイルで設定データを提供します。
設定ファイルの例:
some_string: 'Woo kittens!'
some_int: 42
some_bool: true
設定はネストすることもできます。例:
Drupal 8には、いくつかのタイプの情報があります:
- Content
サイトに表示され、ユーザーが編集することを目的とした情報:記事、基本ページ、画像、ファイルなど。
- Session
個々のユーザーとサイトとのやり取りに関する情報。たとえば、ビューのフィルターに対する現在の選択など。これは一時的なものであり、単一のユーザーにパーソナライズされています。
頻繁に、および/またはユーザーの操作なしで変更される可能性のある情報。例:Cronが最後に実行された時刻、ノード権限の再構築が必要かどうかなど。
設定APIは、モジュールが設定データを保存するための中心的な場所を提供します。このデータは、サイト名などのシンプル設定にすることも、ビューやコンテンツタイプなどの設定エンティティで管理されるより複雑な情報にすることもできます。
設定は、開発から本番まで同期したい情報を保存する場所です。この情報は多くの場合、サイト構築中に作成され、通常のサイト運用中に一般ユーザーが生成することは通常ありません。
インスタンス間で移動すべきではないローカル変数を保存するには、設定ではなくState APIを使用する必要があります。非表示のシステム値には状態を使用してください。環境間でデプロイしたくない場合です。システムをリロードすると、すべての状態が失われる可能性があります。設定は保持されます。
CKEditor APIはDrupal 8で新しくなりました。
これはDrupal 8のCKEditorモジュールのAPIにのみ適用され、CKEditor JavaScriptライブラリのAPIには適用されないことに注意してください。後者については、http://docs.ckeditor.com/を参照してください。
このモジュールの機能の詳細については、テキストエディターモジュールのドキュメントを参照してください。
APIの機能
最もまれに使用されるAPIの順に並べられています:
CKEditorスキン
ルートアクセスチェッカー、hook_entity_access()、およびAccessResultInterfaceオブジェクトを返す必要があるものはすべて、適切なキャッシュ可能性メタデータを追加する必要があります。
まだ読んでいない場合は、キャッシュタグ、キャッシュコンテキスト、max-ageをお読みください。
このインターフェースは、Cache APIとResponseの交点で機能します。これは何よりもまずレスポンスであるため、主な情報はここにあります。
関連情報
キャッシュメタデータ(キャッシュタグ、キャッシュコンテキスト、max-age)の処理を容易にするために、Drupal 8にはCacheableDependencyInterfaceがあります。
なぜ?
レンダー配列(または他の何らかの計算)で使用する個々のエンティティと設定エンティティのキャッシュタグを手動で作成する必要があると想像してください。そして、多言語サイトでは、必要なキャッシュコンテキストも手動で追加します(翻訳されたエンティティの場合、または設定エンティティの言語オーバーライドの場合)。