ContentCache is a simple package - for web service made by SLim Framework, that's helps you cache your content on server. One time handle, more times using.
It's recommended that you use Composer to install ContentCache.
$ composer require lovecoding/content-cache
This will install ContentCache and all required dependencies. ContentCache requires PHP 5.3.0 or newer.
Create an index.php file with the following contents:
Demo using Slim 3.x framework
<?php
require 'vendor/autoload.php';
$app = new Slim\App();
$container = $app->getContainer();
$container['cacheService'] = function() {
// path to folder contains cached
$cacheProvider = new \LoveCoding\ContentCache\CacheProvider('storage/cache');
return $cacheProvider;
};
$app->get('/cache/array', function ($request, $response, $args) use($container) {
$cacheService = $container->get('cacheService');
// $cacheService->cache return a json
$contentArrayCache = $cacheService->cacheArray($request, function() {
// This function will run when $content is null on server
// TODO something
// Must return an array
return ...;
});
return $response->withJson(json_encode($contentArrayCache));
});
$app->get('/cache/plaintext', function ($request, $response, $args) use($container) {
$cacheService = $container->get('cacheService');
$contentCache = $cacheService->cache($request, function() {
// This function will run when $content is null on server
// TODO something
// return and save something you want on server
return ...;
});
return $response->getBody()->write($contentCache);
});
// Using salt for many content
$app->get('/cache/plaintext', function ($request, $response, $args) use($container) {
$cacheService = $container->get('cacheService');
$firstList = $cacheService->salt('salt_for_firstList')->cacheArray($request, function() {
// This function will run when $content is null on server
// TODO something
// return and save something you want on server
return ...;
});
$secondList = $cacheService->salt('salt_for_secondList')->cacheArray($request, function() {
// This function will run when $content is null on server
// TODO something
// return and save something you want on server
return ...;
});
return $response->withJson(json_encode([$firstList, $secondList]));
});
$app->run();
You may quickly test this using the built-in PHP server:
$ php -S localhost:8000
Going to http://localhost:8000/cache/array or http://localhost:8000/cache/plaintext will now display your content cached.