Îmbunătățiți performanța site-ului dvs. web cu PhpFastCache

În acest articol, vom explora biblioteca PhpFastCache, care vă permite să implementați cache-ul în aplicațiile dvs. PHP. Astfel, vă ajută să îmbunătățiți performanța generală a site-ului și timpul de încărcare a paginilor.

Ce este PhpFastCache?

PhpFastCache este o bibliotecă care face o briza pentru a implementa caching-ul în aplicațiile dvs. PHP. Este o bibliotecă ușor de utilizat și totuși puternică, care oferă mai multe API-uri pentru a vă ajuta să implementați o strategie de caching la alegerea dvs. fără a avea probleme prea mari.

Nu faceți greșeala de a presupune că este doar o schemă tradițională de cache a sistemului de fișiere. De fapt, PhpFastCache suportă o mulțime de adaptoare care vă permit să alegeți dintre back-end-uri de înaltă performanță precum Memcache, Redis, MongoDB, CouchDB și altele.

Să aruncăm o privire rapidă la câteva dintre cele mai populare adaptoare:

  • Sistemul de fișiere
  • Memcache, Redis și APC
  • CouchDB și MongoDB
  • Zend Disk Cache și Zend Memory Cache

Dacă nu găsiți alegerea dvs. de adaptor în lista de mai sus, ați putea dezvolta cu ușurință un driver personalizat care se conectează la sistem și funcționează fără efort.

Pe lângă funcționalitatea de bază, biblioteca PhpFastCache oferă și un mecanism de evenimente care vă permite să răspundeți la anumite evenimente predefinite. De exemplu, atunci când ceva este șters din memoria cache, puteți prinde acest eveniment și puteți reîmprospăta sau șterge și date asociate.

În secțiunile viitoare vom trece prin instalarea și configurarea PhpFastCache, împreună cu demonstrarea câtorva exemple.

Instalare și configurare

În această secțiune, vom trece prin instalarea și configurarea bibliotecii PhpFastCache. Există diferite moduri în care puteți aborda acest lucru în proiectul dvs..

Dacă doriți doar să descărcați .zip sau .tar.gz versiune a bibliotecii fără prea multă ușurință, ați putea să mergeți și să o luați de pe site-ul oficial.

Pe de altă parte, l-ați putea instala și ca pachet Compozitor. Acesta ar trebui să fie modul preferat, deoarece facilitează întreținerea și modernizarea în viitor. Dacă nu ați instalat încă Compozitor, va trebui să o faceți mai întâi.

Odată ce ați instalat Compozitor, să mergem mai departe și să luăm biblioteca PhpFastCache utilizând următoarea comandă.

$ compozitorul necesită phpfastcache / phpfastcache

După finalizarea cu succes a comenzii respective, trebuie să aveți locația directorului furnizorului, care conține tot ce aveți nevoie pentru a rula biblioteca PhpFastCache. Pe de altă parte, dacă vă lipsesc librăriile sau extensiile solicitate de biblioteca PhpFastCache, Compozitor vă va cere să le instalați mai întâi.

Ar trebui să găsiți și composer.json fișier care arată astfel:

"necesită": "phpfastcache / phpfastcache": "^ 6.1"

Indiferent de modul în care ați ales să instalați biblioteca PhpFastCache, singurul lucru necesar este includerea acesteia autoload.php fișierul din aplicația dvs. pentru a elimina lucrurile.

Dacă utilizați fluxul de lucru Compozitor, autoload.php este situat sub furnizor director.

// Include autoloader compozitor necesita 'YOUR_APP_PATH /vendor/autoload.php';

Pe de altă parte, dacă ați descărcat .zip sau .tar.gz pachet, autoload.php ar trebui să fie disponibil la src / autoload.php.

// Include autoloader necesita 'YOUR_APP_PATH /src/autoload.php';

Și cu asta, sunteți pregătit să începeți caching-ul și să beneficiați de biblioteca uimitoare PhpFastCache. În următoarea secțiune, vom trece prin câteva exemple practice care demonstrează cum să utilizați PhpFastCache în aplicația dvs..

Demonstrație

Am menționat deja că biblioteca PhpFastCache suportă adaptoare diferite când vine vorba de cache. În această secțiune, voi demonstra folosind sistemul de fișiere și adaptoarele Redis.

Caching Utilizarea adaptorului de fișiere

Continuați și creați file_cache_example.php fișier cu următorul conținut. Presupun că utilizați fluxul de lucru Composer și, astfel, furnizor directorul este la același nivel cu cel al file_cache_example.php. Dacă ați instalat manual PhpFastCache, puteți schimba structura fișierului în consecință.

 __DIR__. "/ cache"]); // Descărcați instanța cache-ului de fișiere $ objFilesCache = CacheManager :: getInstance ('fișiere'); $ cheie = "welcome_message"; // Încercați să preluați elementul memorat în cache cu cheia "welcome_message" $ CachedString = $ objFilesCache-> getItem (cheia $); dacă (is_null ($ CachedString-> get ())) // Intrarea cache nu există $ numberOfSeconds = 60; $ CachedString-> set ("Acest site utilizează PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ ObjFilesCache-> Salvați ($ CachedString); echo "Încă nu în cache, l-am setat în cache și am încercat să-l scoatem din cache!
"echo" Valoarea welcome_message: "$ CachedString-> get (); else // Intrarea în cache există echo" Deja în cache!
"echo" Valoarea welcome_message: "$ CachedString-> get ();

Să trecem prin asta pentru a înțelege ce reprezintă fiecare bucată de cod. Primul lucru evident este de a include autoload.php fișier și să importați spațiul de nume pe care intenționăm să-l folosim.

// Include autoloader compozitor necesită __DIR__. '/Vendor/autoload.php'; utilizați phpFastCache \ CacheManager;

Când utilizați cache-ul de fișiere, trebuie să furnizați calea directoarelor care dețin fișierele generate de sistemul de memorare a cache-urilor. Și exact așa am configurat în fragmentul următor.

// Configurație implicită init pentru adaptorul "fișiere" CacheManager :: setDefaultConfig (["path" => __DIR__. "/ Cache"]);

Desigur, trebuie să ne asigurăm ascunzătoare directorul există și este scris de serverul web.

Apoi, instanțiăm obiectul cache și încercați să încărcați elementul memorat în cache cu mesaj de intampinare cheie.

// Descărcați instanța cache-ului de fișiere $ objFilesCache = CacheManager :: getInstance ('fișiere'); $ cheie = "welcome_message"; // Încercați să preluați elementul memorat în cache cu cheia "welcome_message" $ CachedString = $ objFilesCache-> getItem (cheia $);

Dacă elementul nu există în memoria cache, îl vom adăuga în cache timp de 60 de secunde și îl vom afișa din memoria cache. Pe de altă parte, dacă există în memoria cache, o vom prelua!

dacă (is_null ($ CachedString-> get ())) // Intrarea cache nu există $ numberOfSeconds = 60; $ CachedString-> set ("Acest site utilizează PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ ObjFilesCache-> Salvați ($ CachedString); echo "Încă nu în cache, l-am setat în cache și am încercat să-l scoatem din cache!
"echo" Valoarea welcome_message: "$ CachedString-> get (); else // Intrarea în cache există echo" Deja în cache!
"echo" Valoarea welcome_message: "$ CachedString-> get ();

A fost o instalare destul de ușoară, nu-i așa? De fapt, puteți merge și rulați fișierul pentru a verifica rezultatele!

Când o rulați pentru prima dată, ar trebui să vedeți următoarea ieșire:

Nu în cache încă, l-am setat în cache și încercați să-l scoateți din cache! Valoarea welcome_message: Acest site folosește PhpFastCache!

În următorul run, ieșirea arată astfel:

Deja în memoria cache! Valoarea welcome_message: Acest site folosește PhpFastCache!

Deci, a fost caching-ul sistemului de fișiere la dispoziția dumneavoastră. În următoarea secțiune, vom imita același exemplu folosind adaptorul de memorie cache Redis.

Cache Utilizarea adaptorului Redis

Înainte de a merge mai departe, presupun că ați instalat deja serverul Redis și că rulează pe portul 6379, portul implicit pentru Redis.

Cu acest set, să mergem mai departe și să creăm redis_cache_example.php fișier cu următorul conținut.

 '127.0.0.1', 'port' => 6379]); // Descărcați instanța cache-ului de fișiere $ objRedisCache = CacheManager :: getInstance ('redis'); $ cheie = "welcome_message"; // Încercați să preluați elementul memorat în cache cu tasta "welcome_message" $ CachedString = $ objRedisCache-> getItem (cheia $); dacă (is_null ($ CachedString-> get ())) // Intrarea cache nu există $ numberOfSeconds = 60; $ CachedString-> set ("Acest site utilizează PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ ObjRedisCache-> Salvați ($ CachedString); echo "Încă nu în cache, l-am setat în cache și am încercat să-l scoatem din cache!
"echo" Valoarea welcome_message: "$ CachedString-> get (); else // Intrarea în cache există echo" Deja în cache!
"echo" Valoarea welcome_message: "$ CachedString-> get ();

După cum puteți vedea, fișierul este aproape la fel, cu excepția secțiunii care inițializează configurația specifică adaptorului Redis.

// Configurație implicită init pentru adaptorul "redis" CacheManager :: setDefaultConfig (["host" => '127.0.0.1', 'port' => 6379]);

Desigur, ar trebui să modificați setările gazdă și port pentru a corespunde cerințelor dvs. dacă executați un alt server Redis decât localhost.

Mergeți și conduceți redis_cache_example.php fișier pentru a vedea cum funcționează. De asemenea, ați putea confirma acest lucru verificând ieșirea din CLI Redis.

127.0.0.1:6379> KEYS * 1) "welcome_message"

Deci, asta e tot ce trebuie să folosiți adaptorul Redis. Vă încurajez să încercați diferite adaptoare și opțiunile lor!

Concluzie

Astăzi, am trecut prin una dintre cele mai populare biblioteci de caching pentru PHP-PhpFastCache. În prima jumătate a articolului, am discutat despre elementele de bază împreună cu instalarea și configurarea. Mai târziu, în articol, am trecut prin câteva exemple pentru a demonstra conceptele pe care le-am discutat.

Sper că v-ați bucurat de acest articol și că veți fi motivat să integrați biblioteca PhpFastCache în proiectele viitoare. Simțiți-vă liber să postați orice întrebări și comentarii de mai jos!

Cod