Øk nettstedet ditt med PhpFastCache

I denne artikkelen skal vi utforske PhpFastCache-biblioteket, som lar deg implementere caching i PHP-applikasjonene dine. Dermed bidrar det til å forbedre overordnet nettstedytelse og sidetilpasningstider.

Hva er PhpFastCache?

PhpFastCache er et bibliotek som gjør det lurt å implementere caching i PHP-applikasjonene dine. Det er et brukervennlig og likevel kraftig bibliotek som gir flere APIer for å hjelpe deg med å implementere en caching-strategi etter eget valg uten mye problemer.

Ikke gjør feilen ved å anta at det bare er et tradisjonelt filsystem caching system. Faktisk støtter PhpFastCache en mengde adapters som lar deg velge mellom høyytende bakender som Memcache, Redis, MongoDB, CouchDB og andre.

La oss se på noen av de mest populære adaptere:

  • filsystem
  • Memcache, Redis og APC
  • CouchDB og MongoDB
  • Send Disk Cache og Send Memory Cache

Hvis du ikke finner ditt valg av adapter på listen ovenfor, kan du enkelt utvikle en tilpasset driver som plugger inn i systemet og fungerer uten problemer.

I tillegg til grunnleggende funksjonalitet, tilbyr PhpFastCache-biblioteket også en hendelsesmekanisme som lar deg svare på bestemte forhåndsdefinerte hendelser. For eksempel, når noe slettes fra hurtigbufferen, kan du fange denne hendelsen og oppdatere eller slette relaterte data også.

I de kommende seksjonene går vi gjennom installasjonen og konfigurasjonen av PhpFastCache, sammen med demonstrasjon av noen få eksempler.

Installasjon og konfigurering

I denne delen går vi gjennom installasjonen og konfigurasjonen av PhpFastCache-biblioteket. Det er forskjellige måter du kan nærme seg til dette i prosjektet.

Hvis du bare vil laste ned .glidelås eller .tar.gz versjon av biblioteket uten mye stress, du kan gå videre og ta den fra det offisielle nettstedet.

På den annen side kan du installere den som en komposerpakke også. Det bør være den foretrukne måten som gjør det enklere å vedlikeholde og oppgradere i fremtiden. Hvis du ikke har installert Composer ennå, må du først gjøre det.

Når du har installert Komponist, la oss gå videre og ta tak i PhpFastCache-biblioteket ved hjelp av følgende kommando.

$ komponent krever phpfastcache / phpfastcache

Når du har fullført denne kommandoen, bør du ha leverandørkatalogen på plass, som inneholder alt du trenger for å kjøre PhpFastCache-biblioteket. På den annen side, hvis du mangler biblioteker eller utvidelser som kreves av PhpFastCache-biblioteket, vil Composer be deg om å installere dem først.

Du bør også finne composer.json fil som ser slik ut:

"krever": "phpfastcache / phpfastcache": "^ 6.1"

Uansett måten du har valgt å installere PhpFastCache-biblioteket, er det eneste som er nødvendig å inkludere autoload.php filen i søknaden din for å sparke ting.

Hvis du bruker Composer-basert arbeidsflyt, autoload.php ligger under selger katalog.

// Inkluder komponent autoloader krever 'YOUR_APP_PATH /vendor/autoload.php';

På den annen side, hvis du har lastet ned .glidelås eller .tar.gz pakke, autoload.php bør være tilgjengelig på src / autoload.php.

// Inkluder autoloader krever 'YOUR_APP_PATH /src/autoload.php';

Og med det, er du klar til å starte caching og få fordelene med det fantastiske PhpFastCache-biblioteket. I neste avsnitt går vi gjennom et par praktiske eksempler som viser hvordan du bruker PhpFastCache i søknaden din.

Demonstrasjon

Jeg har allerede nevnt at PhpFastCache-biblioteket støtter ulike adaptere når det gjelder caching. I denne delen demonstrerer jeg bruk av filsystemet og Redis-adaptere.

Caching ved hjelp av filadapteren

Gå videre og opprett file_cache_example.php fil med følgende innhold. Jeg antar at du bruker Composer-arbeidsflyten og dermed selger katalogen er på samme nivå som for file_cache_example.php. Hvis du har installert PhpFastCache manuelt, kan du endre filstrukturen tilsvarende.

 __DIR__. "/ cache"]); // Få forekomst av filer cache $ objFilesCache = CacheManager :: getInstance ('files'); $ key = "welcome_message"; // Prøv å hente bufret element med "welcome_message" -tasten $ CachedString = $ objFilesCache-> getItem ($ key); hvis (is_null ($ CachedString-> get ())) // Den bufrede oppføringen eksisterer ikke $ numberOfSeconds = 60; $ CachedString-> set ("Denne nettsiden bruker PhpFastCache!") -> utløperAfter ($ numberOfSeconds); $ ObjFilesCache-> Lagre ($ CachedString); ekko "Ikke i cache ennå, vi setter det i cache og prøver å få det fra cachen!
"; ekko" Verdien av welcome_message: ". $ CachedString-> get (); else else // Den hurtigbufrede oppføringen finnes ekko. Allerede i cache!
"; ekko" Verdien av welcome_message: ". $ CachedString-> get ();

La oss gå gjennom dette for å forstå hva hvert stykke kode står for. Den første åpenbare tingen er å inkludere autoload.php fil og importer navneområdet som vi har til hensikt å bruke.

// Inkluder komponist autoloader krever __DIR__. '/Vendor/autoload.php'; bruk phpFastCache \ CacheManager;

Når du bruker filbufferen, skal du oppgi katalogbanen som inneholder filer generert av caching-systemet. Og det er akkurat det vi har konfigurert i følgende utdrag.

// Init standardkonfigurasjon for "filer" adapter CacheManager :: setDefaultConfig (["path" => __DIR__. "/ Cache"]);

Selvfølgelig må vi sørge for at cache katalog finnes og det kan skrives av webserveren.

Deretter ordner vi hurtigbufferobjektet og prøver å laste det bufret elementet med velkomstmelding nøkkel.

// Få forekomst av filer cache $ objFilesCache = CacheManager :: getInstance ('files'); $ key = "welcome_message"; // Prøv å hente bufret element med "welcome_message" -tasten $ CachedString = $ objFilesCache-> getItem ($ key);

Hvis varen ikke finnes i hurtigbufferen, legger vi den til hurtigbufferen i 60 sekunder og viser den fra hurtigbufferen. På den annen side, hvis den finnes i hurtigbufferen, henter vi den bare!

hvis (is_null ($ CachedString-> get ())) // Den bufrede oppføringen eksisterer ikke $ numberOfSeconds = 60; $ CachedString-> set ("Denne nettsiden bruker PhpFastCache!") -> utløperAfter ($ numberOfSeconds); $ ObjFilesCache-> Lagre ($ CachedString); ekko "Ikke i cache ennå, vi setter det i cache og prøver å få det fra cachen!
"; ekko" Verdien av welcome_message: ". $ CachedString-> get (); else else // Den hurtigbufrede oppføringen finnes ekko. Allerede i cache!
"; ekko" Verdien av welcome_message: ". $ CachedString-> get ();

Det var et ganske enkelt oppsett, var det ikke? Faktisk kan du gå videre og kjøre filen for å sjekke resultatene!

Når du kjører det for første gang, bør du se følgende utgang:

Ikke i cache ennå, vi setter det i cache og prøver å få det fra cache! Verdien av welcome_message: Denne nettsiden bruker PhpFastCache!

I neste runde ser utgangen noe ut som dette:

Allerede i cache! Verdien av welcome_message: Denne nettsiden bruker PhpFastCache!

Så det var filsystem caching til din disposisjon. I neste avsnitt vil vi etterligne det samme eksemplet ved hjelp av Redis-hurtigadapteren.

Caching ved hjelp av Redis-adapteren

Før vi går videre antar jeg at du allerede har installert Redis-serveren, og den kjører på port 6379, som er standardporten for Redis.

Med det satt opp, la oss gå videre og opprette redis_cache_example.php fil med følgende innhold.

 '127.0.0.1', 'port' => 6379]); // Få forekomst av filer cache $ objRedisCache = CacheManager :: getInstance ('redis'); $ key = "welcome_message"; // Prøv å hente bufret element med "welcome_message" -tasten $ CachedString = $ objRedisCache-> getItem ($ key); hvis (is_null ($ CachedString-> get ())) // Den bufrede oppføringen eksisterer ikke $ numberOfSeconds = 60; $ CachedString-> set ("Denne nettsiden bruker PhpFastCache!") -> utløperAfter ($ numberOfSeconds); $ ObjRedisCache-> Lagre ($ CachedString); ekko "Ikke i cache ennå, vi setter det i cache og prøver å få det fra cachen!
"; ekko" Verdien av welcome_message: ". $ CachedString-> get (); else else // Den hurtigbufrede oppføringen finnes ekko. Allerede i cache!
"; ekko" Verdien av welcome_message: ". $ CachedString-> get ();

Som du kan se, er filen stort sett den samme, unntatt delen som initialiserer konfigurasjonen som er spesifikk for Redis-adapteren.

// Init standardkonfigurasjon for "redis" adapter CacheManager :: setDefaultConfig (["host" => '127.0.0.1', "port" => 6379));

Selvfølgelig bør du endre verts- og portinnstillingene for å matche dine krav hvis du kjører en annen Redis-server enn lokalhost.

Gå videre og kjøre redis_cache_example.php fil for å se hvordan det fungerer. Du kan også bekrefte det ved å sjekke utgangen i Redis CLI.

127.0.0.1:6379> NØKKER * 1) "welcome_message"

Så det er alt du trenger for å bruke Redis-adapteren. Jeg vil oppfordre deg til å prøve forskjellige adaptere og deres alternativer!

Konklusjon

I dag gikk vi gjennom et av de mest populære caching-bibliotekene for PHP-PhpFastCache. I første halvdel av artikkelen diskuterte vi det grunnleggende sammen med installasjon og konfigurasjon. Senere i artikkelen gikk vi gjennom et par eksempler for å demonstrere konseptene som vi diskuterte.

Jeg håper du har hatt glede av artikkelen, og at du vil bli motivert for å integrere PhpFastCache-biblioteket i dine kommende prosjekter. Du er velkommen til å legge inn eventuelle spørsmål og kommentarer nedenfor!