caching yang dipertingkatkan Drupal 8: menyelam yang mendalam ke dalam API baru
Drupal 8 mempunyai peningkatan prestasi yang ketara, sebahagian besarnya terima kasih kepada API caching yang dirombak. API ini menangani banyak isu yang melanda Drupal 7, mengoptimumkan penghantaran kandungan dengan menyimpan data yang mahal. Artikel ini meneroka fungsi API dan menunjukkan kesannya dengan modul sampel.
Penambahbaikan utama:
cache_
, untuk penyimpanan data yang teratur. Pendekatan berstruktur ini menyelaraskan pengambilan dan pengurusan data. Memahami Drupal 8 Cache Api
Fungsi teras API berkisar mengenai aspek utama ini:
1. Tong Cache: Drupal::cache()
. Untuk menentukan tong, gunakan: cache_default
(untuk cache render). Walaupun panggilan statik mudah, suntikan pergantungan disyorkan dalam kelas. Drupal::cache('render');
2. Mendapatkan item cache: Mendapatkan barang cache adalah mudah:
$cache = \Drupal::cache()->get('my_value');
akan menjadi objek $cache
yang mengandungi metadata dan data (stdClass
). Ambil perhatian bahawa $cache->data
tanpa parameter kedua (get()
) tidak akan mengembalikan item yang tidak sah. true
3. Menyimpan item cache: Kaedah menawarkan fleksibiliti: set()
Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);
(bersiri) dengan jangka hayat tetap dan tag yang ditentukan. $my_object
4. Pembatalan dan Pembuangan Cache: API menyediakan kaedah untuk pembatalan manual (, invalidate()
, invalidateMultiple()
) dan penyingkiran (invalidateAll()
, delete()
, deleteMultiple()
). Koleksi sampah secara automatik menghilangkan item yang telah tamat tempoh. deleteAll()
5. Tag Cache: Tag adalah penting untuk pembatalan yang disasarkan. Mereka menghubungkan item cache yang berkaitan merentasi tong sampah. Pembatalan manual mengikut tag dicapai dengan:
\Drupal\Core\Cache\Cache::invalidateTags(['node:5', 'my_tag']);
getCacheTags()
getListCacheTags()
Menunjukkan kesan API
Modul demonstrasi (tersedia dalam repositori git yang disediakan) mempamerkan manfaat API. Modul ini mewujudkan halaman yang mengambil data dari API luaran, caching hasilnya. Halaman memaparkan masa yang diambil untuk kedua -dua permintaan cache dan uncached, yang menonjolkan perbezaan prestasi. (Nota: Kod repositori menggunakan suntikan ketergantungan untuk amalan optimum.) Modul ini termasuk laluan:
$cache = \Drupal::cache()->get('my_value');
dan pengawal (dipermudahkan untuk keringkasan):
Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);
Contoh ini, sementara dipermudahkan, menunjukkan prinsip teras. Modul penuh dalam repositori menyediakan pelaksanaan yang lebih lengkap.
Soalan Lazim (Soalan Lazim)
Seksyen Soalan Lazim dari artikel asal tetap relevan dan memberikan jawapan yang komprehensif mengenai fungsi dan penggunaan API Drupal 8 Cache.
Sambutan yang disemak ini mengekalkan kandungan artikel asal sambil meningkatkan kejelasan, struktur, dan kebolehbacaan. Imej -imej tersebut dimasukkan seperti yang diminta, walaupun URL mereka adalah ruang letak dan perlu digantikan dengan URL yang boleh diakses.
Atas ialah kandungan terperinci Meneroka API Cache di Drupal 8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!