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があります。
なぜ?
レンダー配列(または他の何らかの計算)で使用する個々のエンティティと設定エンティティのキャッシュタグを手動で作成する必要があると想像してください。そして、多言語サイトでは、必要なキャッシュコンテキストも手動で追加します(翻訳されたエンティティの場合、または設定エンティティの言語オーバーライドの場合)。
Varnish Cacheは、キャッシングリバースHTTPプロキシとしても知られるWebアプリケーションアクセラレータです。Varnishは、ページ読み込みのパフォーマンスを10〜1000倍に向上させるために何千ものDrupalサイトで使用されており、キャッシュタグと組み合わせてキャッシュの無効化を簡素化できます。
基本的なキャッシュタグ統合では、VarnishがDrupalによって生成されたキャッシュタグと正しく連携することを確認するために、3つのことを行う必要があります: