Drupal 8の強化されたキャッシュ:新しいAPIに深く潜ります
Drupal 8は、大幅なパフォーマンスの改善を誇っています。このAPIは、Drupal 7を悩ませる多くの問題に対処し、計算上の高価なデータを保存することによりコンテンツ配信を最適化します。 この記事では、APIの機能を調査し、サンプルモジュールでの影響を示しています。
重要な改善:
cache_
APIのコア機能は、これらの重要な側面を中心に展開しています:
1。キャッシュビン:データはビンに編成され、
サービスを介してアクセスされます。 デフォルトのビンはです。 ビンを指定するには、:(レンダリングキャッシュ用)を使用します。 静的呼び出しは便利ですが、クラス内で依存関係注射をお勧めします。
Drupal::cache()
2。キャッシュされたアイテムの取得:キャッシュされたアイテムの取得は簡単です:cache_default
Drupal::cache('render');
は、メタデータとデータ()を含むオブジェクトになります。 2番目のパラメーター(
)がない$cache = \Drupal::cache()->get('my_value');
$cache
3。キャッシュされたアイテムの保存:stdClass
$cache->data
メソッドは柔軟性を提供します:get()
true
(シリアル化)を保存します。
4。キャッシュの無効化と削除:set()
APIは、手動の無効化(
Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);
)および削除($my_object
、
)の方法を提供します。 Garbage Collectionは、期限切れのアイテムを自動的に削除します
5。キャッシュタグ:invalidate()
タグは、ターゲットの無効化に不可欠です。 関連するキャッシュアイテムをビン全体にリンクします。 タグによる手動の無効化は、invalidateMultiple()
で達成されます
invalidateAll()
delete()
DRUPALエンティティは、組み込みのタグメソッド(deleteMultiple()
、deleteAll()
)を活用しています
APIの影響を実証します
デモンストレーションモジュール(提供されたGITリポジトリで利用可能)は、APIの利点を紹介します。 このモジュールは、外部APIからデータを取得するページを作成し、結果をキャッシュします。 このページには、キャッシュされたリクエストと非亀裂の両方のリクエストの両方にかかった時間が表示され、パフォーマンスの違いが強調表示されます。 (注:リポジトリのコードは、最適な練習のために依存関係の注入を使用します。)モジュールにはルートが含まれます。
$cache = \Drupal::cache()->get('my_value');
Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);
元の記事のFAQSセクションは関連性があり、Drupal 8 Cache APIの機能と使用に関する包括的な回答を提供します。
この改訂された応答は、明確さ、構造、読みやすさを改善しながら、元の記事のコンテンツを維持します。 URLはプレースホルダーであり、実際のアクセス可能なURLに置き換える必要がありますが、画像は要求に応じて含まれています。
以上がDrupal 8のキャッシュAPIの調査8の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。