Drupal 8的增強緩存:深入研究新的API
Drupal 8具有重大的性能提高,這在很大程度上要歸功於其改進的緩存API。該API解決了困擾Drupal 7的許多問題,通過存儲計算昂貴的數據來優化內容交付。 本文探討了API的功能,並通過示例模塊演示了其影響。
密鑰改進:
有效的數據存儲:
cache_
>服務訪問。 默認垃圾箱是。 要指定垃圾箱,請使用:(用於渲染緩存)。 雖然靜態通話很方便,但建議在類中註入依賴項。
> 2。檢索緩存的項目:檢索緩存的物品很簡單:Drupal::cache()
將是包含元數據和數據(cache_default
)的對象。 請注意,沒有第二個參數(Drupal::cache('render');
)不會返回無效的項目。
3。存儲緩存的項目:
>方法提供靈活性:$cache = \Drupal::cache()->get('my_value');
$cache
這個存儲stdClass
(序列化)帶有永久壽命和指定的標籤。 $cache->data
get()
true
4。緩存無效和刪除:
,,)和刪除(set()
>,
Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);
)。 垃圾收集會自動清除過期的物品。 $my_object
5。緩存標籤:標籤對於目標無效至關重要。 他們將相關的緩存項目跨垃圾箱鏈接。 通過以下方式實現通過標籤的手動無效
invalidate()
> drupal實體利用內置標籤方法(invalidateMultiple()
,invalidateAll()
)。 delete()
>
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的詳細內容。更多資訊請關注PHP中文網其他相關文章!