1. Go to this page and download the library: Download picamator/cachemanager library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
picamator / cachemanager example snippets
declare(strict_types = 1);
use \Picamator\CacheManager\Operation\Save;
use \Picamator\CacheManager\Operation\Search;
use \Picamator\CacheManager\Operation\Delete;
use \Picamator\CacheManager\ObjectManager;
use \Picamator\CacheManager\Cache\CacheItemFactory;
use \Picamator\CacheManager\Data\SearchResultFactory;
use \Picamator\CacheManager\Cache\KeyGenerator;
use \Picamator\CacheManager\CacheManager;
use \Picamator\CacheManager\CacheManagerSubject;
use \Picamator\CacheManager\Data\SearchCriteriaBuilder;
/**
* 1. Create dependencies objects
*/
// Use your implementation or existing adapters to fit PSR-6
/** @var \Psr\Cache\CacheItemPoolInterface $cacheItemPoolMock */
$cacheItemPoolMock = new CacheItemPoolMock();
// Use your implementation for extending CacheManagerSubject functionality
/** @var \Picamator\CacheManager\Spi\ObserverInterface $afterSearchMock */
$afterSearchMock = new AfterSearchMock();
// Object builder & factories
$objectManager = new ObjectManager();
$cacheItemFactory = new CacheItemFactory($objectManager);
$searchResultFactory = new SearchResultFactory($objectManager);
// Building keys for saving data to cache
$cacheKeyGenerator = new KeyGenerator();
// In real live please use Proxies or Lazy Loading
$operationSave = new Save($cacheKeyGenerator, $cacheItemPoolMock, $cacheItemFactory);
$operationSearch = new Search($cacheKeyGenerator, $cacheItemPoolMock, $searchResultFactory);
$operationDelete = new Delete($cacheKeyGenerator, $cacheItemPoolMock);
/**
* 2. Instantiate cache manager
*/
// Instantiate main cache manager object
$cacheManager = new CacheManager($operationSave, $operationSearch, $operationDelete);
// Wrap Cache managed as Observer, it's possible to omit wrapper if application does not need such kind extensibility
$cacheManagerSubject = new CacheManagerSubject($cacheManager);
// Attach observer to execute after search
$cacheManagerSubject->attach('afterSearch', $afterSearchMock);
/**
* 3. Provide search
*/
// Prepare criteria
$searchCriteriaBuilder = new SearchCriteriaBuilder($objectManager);
$searchCriteria = $searchCriteriaBuilder
->setContextName('cloud')
->setEntityName('customer')
->setIdList([1, 2, 3])
->setFieldList(['id', 'name'])
->setIdName('id')
->build();
$searchResult = $cacheManagerSubject->search($searchCriteria);
/**
* 4. Handle search result
*/
// result api details
$searchResult->count(); // number of returned data from cache e.g. 2
$searchResult->getData(); // array of cache items
$searchResult->getMissedData(); // array of missed in cache id's e.g. [1]
$searchResult->hasData(); // boolean to show does something fit $searchCriteria in cache
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.