Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Mengatur Caching dalam PHP Dengan Symfony Cache Component

by
Difficulty:IntermediateLength:ShortLanguages:

Indonesian (Bahasa Indonesia) translation by Febri Ardian Sanjoyo (you can also view the original English article)

Hari ini, saya akan menunjukkan Symfony Cache component, cara mudah untuk menambahkan caching ke aplikasi PHP Anda. Ini membantu meningkatkan keseluruhan kinerja aplikasi Anda dengan mengurangi page load time.

Symfony Cache Component

Symfony Cache component memungkinkan Anda mengatur caching di aplikasi PHP Anda. Komponen itu sendiri sangat mudah dipasang dan dikonfigurasi dan memungkinkan Anda untuk memulai dengan cepat. Juga, ia menyediakan berbagai adapter untuk dipilih, seperti yang ditunjukkan pada daftar berikut:

  • database adaptor
  • filesystem adapter
  • memcached adapter
  • Redis adapter
  • APCu adapter
  • dan banyak lagi

Ketika datang ke cache menggunakan komponen Symfony Cache, ada beberapa istilah yang harus Anda kenali.

Untuk memulai, cache item mengacu pada konten yang disimpan. Setiap item disimpan sebagai pasangan key-value. Cache item dikelola oleh cache pool, yang mengelompokkannya secara logis. Bahkan, Anda perlu menggunakan cache pool untuk memanipulasi value cache. Terakhir, cache adapter yang melakukan semua pengangkatan berat untuk menyimpan item di cache back-end.

Pada artikel ini, kita akan mengeksplorasi bagaimana Anda dapat melepaskan kekuatan komponen Symfony Cache. Seperti biasa, kita akan mulai dengan instalasi dan konfigurasi, dan kemudian kita akan menjelajahi beberapa contoh dunia nyata di paruh kedua artikel.

Instalasi dan konfigurasi

Di bagian ini, kita akan menginstal komponen Cache. Saya berasumsi bahwa Anda telah menginstal Composer di sistem Anda — Anda akan memerlukannya untuk menginstal komponen Cache yang tersedia di Packagist.

Setelah Anda menginstal Composer, lanjutkan dan instal komponen Cache menggunakan perintah berikut.

Itu seharusnya membuat file composer.json yang seharusnya terlihat seperti ini:

Itu saja untuk instalasi, tetapi bagaimana Anda harus menambahkannya ke aplikasi Anda? Ini hanya masalah including file autoload.php yang dibuat oleh Composer dalam aplikasi Anda, seperti yang ditunjukkan pada cuplikan berikut.

Sebuah contoh yang nyata

Di bagian ini, kita akan melihat contoh yang menunjukkan bagaimana Anda bisa menggunakan komponen Cache di aplikasi Anda ke cache content.

Untuk memulai, mari kita lanjutkan dan buat file index.php dengan isi berikut.

Mari kita bahas bagian-bagian utama file index.php untuk memahami tujuannya.

Buat Cache Pool

Seperti yang telah kita bahas sebelumnya, item yang disimpan dalam cache disimpan dalam kumpulan cache. Selanjutnya, setiap kumpulan cache didukung oleh back-end dan cache adapter spesifik. Jika Anda ingin menyimpan item dalam cache sistem file, misalnya, Anda perlu menginisialisasi cache pool dari system adapter file.

Anda dapat memberikan tiga argumen opsional ke objek FilesystemAdapter:

  • namespace di mana Anda ingin membuat cache entries
  • seumur hidup dalam hitungan detik untuk cache item
  • direktori tempat cache akan disimpan.

Cara Menyimpan Nilai String

Karena kita telah membuat cache pool, kita dapat menggunakannya untuk menyimpan cache items.

Pertama, kita menggunakan metode getItem untuk mengambil cache item dengan demo_string key. Selanjutnya, kita menggunakan metode isHit untuk memeriksa apakah nilai yang kita cari sudah ada di cache item $demoString.

Karena ini adalah pertama kalinya kami sedang mengambil demo_string cache item, metode isHit harus return false. Selanjutnya, kita menggunakan metode set dari $demoString objek untuk mengatur nilai cache. Akhirnya, kita menyimpan cache item $demoString ke dalam cache pool $cachePool menggunakan metode save.

Sekarang kita sudah menyimpan item di cache, mari kita lihat cara mengambilnya dari cache.

Di sini, kita menggunakan metode hasItem untuk memeriksa keberadaan cache item di cache pool sebelum mengambilnya.

Selanjutnya, mari kita lihat cara menghapus semua cache item dari kumpulan cache:

Cara Menyimpan Array Value

Di bagian sebelumnya, kita membahas cara menyimpan nilai dasar di kumpulan cache. Menyimpan array value sama, seperti yang Anda lihat pada contoh berikut.

Seperti yang Anda lihat, kita bisa mengatur cache item dengan array value, sama seperti yang kita lakukan untuk string.

Selanjutnya, mari kita lihat cara menghapus cache item spesifik dari cache pool.

Di sini, kita menggunakan metode deleteItem untuk menghapus item demo_array dari cache pool.

Cara Mengatur Tanggal Kedaluwarsa untuk Cache Items

Sejauh ini, kita telah menyimpan item ke dalam pool tanpa tanggal kedaluwarsa. Namun, Anda biasanya tidak ingin menyimpan item dalam cache secara permanen. Misalnya, Anda mungkin ingin menyegarkan cache item secara berkala, jadi Anda memerlukan mekanisme yang menghapus cache item yang kedaluwarsa.

Di bagian ini, kita akan membahas cara menyimpan item dalam cache bersama dengan tanggal kedaluwarsa.

Seperti yang Anda lihat di cuplikan di atas, Anda dapat menggunakan metode expiresAfter untuk menetapkan tanggal kedaluwarsa item yang di-cache. Anda dapat melewatkan jumlah detik yang Anda inginkan untuk menyimpan item dalam argumen pertama dari metode expiresAfter.

Dalam contoh kita, kita akan menggunakan metoda tidur untuk menguji jika cache item masih tersedia di kolam renang cache.

Pergi ahead dan mengujinya untuk melihat cara kerjanya!

Kesimpulan

Hari ini, kita telah melihat sekilas Symfony Cache component, yang memungkinkan Anda mengatur cache dalam aplikasi PHP Anda. Ini juga mendukung berbagai caching adapter yang bersama-sama memberikan Anda fleksibilitas untuk memilih jenis back-end yang ingin Anda gunakan.

Jangan ragu untuk mengungkapkan pemikiran dan pertanyaan Anda menggunakan form di bawah ini.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.