Verbeter de prestaties van uw website met PhpFastCache

In dit artikel gaan we de PhpFastCache-bibliotheek verkennen, waarmee u caching in uw PHP-toepassingen kunt implementeren. Het helpt dus om de algehele website-prestaties en laadtijd van pagina's te verbeteren.

Wat is PhpFastCache?

PhpFastCache is een bibliotheek die het heel gemakkelijk maakt om caching in uw PHP-applicaties te implementeren. Het is een eenvoudig te gebruiken en toch krachtige bibliotheek die verschillende API's biedt om u te helpen bij het zonder veel gedoe implementeren van een cachingstrategie van uw keuze.

Maak niet de fout om ervan uit te gaan dat het slechts een traditioneel bestandssysteem caching schema is. PhpFastCache ondersteunt zelfs een overvloed aan adapters waarmee u kunt kiezen uit hoogwaardige back-ends zoals Memcache, Redis, MongoDB, CouchDB en anderen.

Laten we snel een paar van de populairste adapters bekijken:

  • bestandssysteem
  • Memcache, Redis en APC
  • CouchDB en MongoDB
  • Zend Disk Cache en Zend Memory Cache

Als u in de bovenstaande lijst uw adapter niet kunt vinden, kunt u eenvoudig een aangepast stuurprogramma ontwikkelen dat op het systeem wordt aangesloten en moeiteloos werkt.

Naast de basisfunctionaliteit biedt de PhpFastCache-bibliotheek ook een gebeurtenismechanisme waarmee u kunt reageren op bepaalde vooraf gedefinieerde gebeurtenissen. Wanneer bijvoorbeeld iets is verwijderd uit de cache, kunt u deze gebeurtenis vangen en ook gerelateerde gegevens vernieuwen of verwijderen.

In de komende secties zullen we de installatie en configuratie van PhpFastCache doornemen, samen met de demonstratie van enkele voorbeelden.

Installatie en configuratie

In deze sectie zullen we de installatie en configuratie van de PhpFastCache-bibliotheek doornemen. Er zijn verschillende manieren om dit in uw project te benaderen.

Als u alleen de. Wilt downloaden .ritssluiting of .tar.gz versie van de bibliotheek zonder veel gedoe, je zou kunnen doorgaan en pak het van de officiële site.

Aan de andere kant zou je het ook als Composer-pakket kunnen installeren. Dat zou de voorkeur moeten hebben, omdat het onderhoud en upgraden in de toekomst eenvoudiger maakt. Als u Composer nog niet hebt geïnstalleerd, moet u dat eerst doen.

Als je Composer eenmaal hebt geïnstalleerd, gaan we door met de phpFastCache-bibliotheek met behulp van de volgende opdracht.

$ composer vereist phpfastcache / phpfastcache

Nadat de opdracht met succes is voltooid, moet de leveranciersdirectory op zijn plaats staan, die alles bevat wat u nodig hebt om de PhpFastCache-bibliotheek uit te voeren. Aan de andere kant, als u bibliotheken of extensies mist die vereist zijn door de PhpFastCache-bibliotheek, zal Composer u vragen om ze eerst te installeren.

Je zou ook de. Moeten vinden composer.json bestand dat er zo uitziet:

"require": "phpfastcache / phpfastcache": "^ 6.1"

Ongeacht de manier waarop je hebt gekozen om de PhpFastCache-bibliotheek te installeren, het enige dat nodig is, is om de autoload.php bestand in je applicatie om dingen uit te schakelen.

Als u de op Composer gebaseerde werkstroom gebruikt, autoload.php bevindt zich onder de verkoper directory.

// Omvat de autoloader van de componist vereist 'YOUR_APP_PATH /vendor/autoload.php';

Aan de andere kant, als u de .ritssluiting of .tar.gz pakket, autoload.php moet beschikbaar zijn op src / autoload.php.

// Inclusief autoloader vereisen 'YOUR_APP_PATH /src/autoload.php';

En daarmee bent u helemaal klaar om te cachen en de voordelen van de verbazingwekkende PhpFastCache-bibliotheek te benutten. In de volgende sectie zullen we een aantal praktische voorbeelden bespreken die laten zien hoe u PhpFastCache in uw toepassing kunt gebruiken.

Demonstratie

Ik heb al gezegd dat de PhpFastCache-bibliotheek verschillende adapters ondersteunt als het gaat om caching. In deze sectie zal ik demonstreren met behulp van het bestandssysteem en Redis-adapters.

Caching met behulp van de Files-adapter

Ga je gang en maak de file_cache_example.php bestand met de volgende inhoud. Ik neem aan dat je de Composer-workflow gebruikt en dus de verkoper directory bevindt zich op hetzelfde niveau als dat van file_cache_example.php. Als u PhpFastCache handmatig hebt geïnstalleerd, kunt u de bestandsstructuur dienovereenkomstig wijzigen.

 __DIR__. "/ cache"]); // Get exemplaar van bestanden cache $ objFilesCache = CacheManager :: getInstance ('bestanden'); $ key = "welcome_message"; // Probeer het item in de cache op te halen met de sleutel "welcome_message" $ CachedString = $ objFilesCache-> getItem ($ key); if (is_null ($ CachedString-> get ())) // Het item in de cache bestaat niet $ numberOfSeconds = 60; $ CachedString-> set ("Deze website maakt gebruik van PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ ObjFilesCache-> save ($ CachedString); echo "Nog niet in cache, we plaatsen het in de cache en proberen het uit de cache te halen!
"; echo" De waarde van welcome_message: ". $ CachedString-> get (); else // Het item in de cache bestaat uit echo" Al in cache!
"; echo" De waarde van welcome_message: ". $ CachedString-> get ();

Laten we dit doornemen om te begrijpen waar elk stuk code voor staat. Het eerste voor de hand liggende ding is om de autoload.php bestand en importeer de naamruimte die we willen gebruiken.

// Omvat de autoloader van componisten __DIR__. '/Vendor/autoload.php'; gebruik phpFastCache \ CacheManager;

Wanneer u de bestandscache gebruikt, wordt verondersteld dat u het directorypad opgeeft dat bestanden bevat die door het cachingsysteem zijn gegenereerd. En dat is precies wat we in het volgende fragment hebben geconfigureerd.

// Init standaardconfiguratie voor "bestanden" -adapter CacheManager :: setDefaultConfig (["path" => __DIR__. "/ Cache"]);

Natuurlijk moeten we ervoor zorgen dat het cache directory bestaat en het is beschrijfbaar door de webserver.

Vervolgens initiëren we het cache-object en proberen we het item in de cache te laden met de Welkoms bericht sleutel.

// Get exemplaar van bestanden cache $ objFilesCache = CacheManager :: getInstance ('bestanden'); $ key = "welcome_message"; // Probeer het item in de cache op te halen met de sleutel "welcome_message" $ CachedString = $ objFilesCache-> getItem ($ key);

Als het item niet in de cache voorkomt, voegen we het 60 seconden aan de cache toe en geven het weer uit de cache. Aan de andere kant, als het in de cache bestaat, zullen we het gewoon ophalen!

if (is_null ($ CachedString-> get ())) // Het item in de cache bestaat niet $ numberOfSeconds = 60; $ CachedString-> set ("Deze website maakt gebruik van PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ ObjFilesCache-> save ($ CachedString); echo "Nog niet in cache, we plaatsen het in de cache en proberen het uit de cache te halen!
"; echo" De waarde van welcome_message: ". $ CachedString-> get (); else // Het item in de cache bestaat uit echo" Al in cache!
"; echo" De waarde van welcome_message: ". $ CachedString-> get ();

Dat was een vrij eenvoudige set-up, niet waar? In feite kunt u doorgaan en het bestand uitvoeren om de resultaten te controleren!

Wanneer u het voor de eerste keer uitvoert, ziet u de volgende uitvoer:

Nog niet in cache, we plaatsen het in de cache en proberen het uit de cache te halen! De waarde van welcome_message: deze website maakt gebruik van PhpFastCache!

In de volgende run ziet de uitvoer er ongeveer zo uit:

Al in de cache! De waarde van welcome_message: deze website maakt gebruik van PhpFastCache!

Dus dat was bestandssysteem caching tot uw beschikking. In de volgende sectie bootsen we hetzelfde voorbeeld na met de Redis-cache-adapter.

Caching met behulp van de Redis-adapter

Voordat we verder gaan, neem ik aan dat je de Redis-server al hebt geïnstalleerd en deze draait op poort 6379, de standaardpoort voor Redis.

Met die opzet, laten we doorgaan en de redis_cache_example.php bestand met de volgende inhoud.

 '127.0.0.1', "poort" => 6379]); // Get exemplaar van bestanden cache $ objRedisCache = CacheManager :: getInstance ('redis'); $ key = "welcome_message"; // Probeer het item in de cache op te halen met de sleutel "welcome_message" $ CachedString = $ objRedisCache-> getItem ($ key); if (is_null ($ CachedString-> get ())) // Het item in de cache bestaat niet $ numberOfSeconds = 60; $ CachedString-> set ("Deze website maakt gebruik van PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ ObjRedisCache-> save ($ CachedString); echo "Nog niet in cache, we plaatsen het in de cache en proberen het uit de cache te halen!
"; echo" De waarde van welcome_message: ". $ CachedString-> get (); else // Het item in de cache bestaat uit echo" Al in cache!
"; echo" De waarde van welcome_message: ". $ CachedString-> get ();

Zoals u kunt zien, is het bestand vrijwel hetzelfde, behalve de sectie die de configuratie initialiseert die specifiek is voor de Redis-adapter.

// Init standaardconfiguratie voor "redis" -adapter CacheManager :: setDefaultConfig (["host" => '127.0.0.1', "port" => 6379]);

Natuurlijk moet u de instellingen voor de host en de poort aanpassen aan uw vereisten als u een Redis-server gebruikt die niet van localhost is.

Ga je gang en voer de redis_cache_example.php bestand om te zien hoe het werkt. U kunt dit ook bevestigen door de uitvoer in de Redis CLI te controleren.

127.0.0.1:6379> TOETSEN * 1) "welcome_message"

Dat is alles wat u nodig hebt om de Redis-adapter te gebruiken. Ik zou je willen aanmoedigen om verschillende adapters en hun opties uit te proberen!

Conclusie

Vandaag hebben we een van de populairste cachebibliotheken voor PHP-PhpFastCache doorlopen. In de eerste helft van het artikel bespraken we de basisprincipes samen met installatie en configuratie. Later in het artikel hebben we een aantal voorbeelden doorgenomen om de concepten die we hebben besproken te demonstreren.

Ik hoop dat je het artikel leuk vond en dat je gemotiveerd zult zijn om de PhpFastCache-bibliotheek te integreren in je nieuwe projecten. Aarzel niet om vragen en opmerkingen hieronder te plaatsen!