lovecoding/content-cache

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.


Keywords
slim, web-api, web-service, slim 3, content-cache, cache-storage, php, php-library, slim-framework, web
License
MIT

Documentation

LoveCoding\ContentCache

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.

Installation

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.

Usage

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.