1. Go to this page and download the library: Download zfegg/psr11-symfony-cache 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/ */
zfegg / psr11-symfony-cache example snippets
/** @var \Symfony\Component\Cache\Adapter\AdapterInterface $cache */
$cache = $container->get('other');
// The callable will only be executed on a cache miss.
$value = $cache->get('my_cache_key', function (\Symfony\Contracts\Cache\ItemInterface $item) {
$item->expiresAfter(3600);
// ... do some HTTP request or heavy computations
$computedValue = 'foobar';
return $computedValue;
});
echo $value; // 'foobar'
// Create Container
$container = new \Xtreamwayz\Pimple\Container([
// Cache using the default keys.
'cache' => new \Zfegg\Psr11SymfonyCache\CacheFactory(),
// Second cache using a different cache configuration
'other' => function($c) {
return \Zfegg\Psr11SymfonyCache\CacheFactory::other($c);
},
// Config
'config' => [
'cache' => [
// At the bare minimum you must pter\AdapterInterface $cache */
$cache = $container->get('other');
// The callable will only be executed on a cache miss.
$value = $cache->get('my_cache_key', function (\Symfony\Contracts\Cache\ItemInterface $item) {
$item->expiresAfter(3600);
// ... do some HTTP request or heavy computations
$computedValue = 'foobar';
return $computedValue;
});
echo $value; // 'foobar'
// ... and to remove the cache key
$cache->delete('my_cache_key');
// Create the container and define the services you'd like to use
$container = new \Laminas\ServiceManager\ServiceManager([
'factories' => [
// Cache using the default keys.
'fileSystem' => \Zfegg\Psr11SymfonyCache\CacheFactory::class,
// Second cache using a different cache configuration
'other' => [\Zfegg\Psr11SymfonyCache\CacheFactory::class, 'other'],
],
]);
// Config
$container->setService('config', [
'cache' => [
// At the bare minimum you must 'my_cache_key', function (\Symfony\Contracts\Cache\ItemInterface $item) {
$item->expiresAfter(3600);
// ... do some HTTP request or heavy computations
$computedValue = 'foobar';
return $computedValue;
});
echo $value; // 'foobar'
// ... and to remove the cache key
$cache->delete('my_cache_key');
// CacheServiceAbstractFactory
$container->addAbstractFactory(\Zfegg\Psr11SymfonyCache\CacheServiceAbstractFactory::class);
$cacheDefault = $container->get("cache.default");
$cacheSomeOtherAdaptor = $container->get("cache.someOtherAdaptor");
// Get a psr 16 simple cache
$psr16CacheDefault = $container->get("simple-cache.default");
$psr16CacheSomeOtherAdaptor = $container->get("simple-cache.someOtherAdaptor");
return [
'dependencies' => [
'factories' => [
// Cache using the default keys.
'fileSystem' => \Zfegg\Psr11SymfonyCache\CacheFactory::class,
// Second cache using a different filesystem configuration
'someOtherAdaptor' => [\Zfegg\Psr11SymfonyCache\CacheFactory::class, 'someOtherAdaptor'],
],
'aliases' => [
\Psr\Cache\CacheItemPoolInterface::class => 'fileSystem',
],
],
'cache' => [
// At the bare minimum you must
return [
'service_manager' => [
'factories' => [
// Cache using the default keys.
'fileSystem' => \Zfegg\Psr11SymfonyCache\CacheFactory::class,
// Second cache using a different configuration
'someOtherAdaptor' => [\Zfegg\Psr11SymfonyCache\CacheFactory::class, 'someOtherAdaptor'],
],
'aliases' => [
\Psr\Cache\CacheItemPoolInterface::class => 'fileSystem',
],
],
'cache' => [
// At the bare minimum you must
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
use \Symfony\Component\Cache\Adapter\AdapterInterface;
use \Symfony\Contracts\Cache\ItemInterface;
'options' => [],
],
// Some other Adaptor. Keys are the names for each adaptor
'someOtherAdaptor' => [
'type' => 'local',
'options' => [
'root' => '/tmp/pimple'
],
],
],
],
];
$app = new \Slim\App($config);
// Wire up the factory
$container = $app->getContainer();
// Cache using the default keys.
$container['fileSystem'] = new \Zfegg\Psr11SymfonyCache\CacheFactory();
// Second cache using a different cache configuration
$container['someOtherAdaptor'] = function ($c) {
return \Zfegg\Psr11SymfonyCache\CacheFactory::someOtherAdaptor($c);
};
// Example usage
$app->get('/example', function (Request $request, Response $response) {
/** @var AdapterInterface $cache */
$cache = $this->get('other');
// The callable will only be executed on a cache miss.
$value = $cache->get('my_cache_key', function (ItemInterface $item) {
$item->expiresAfter(3600);
// ... do some HTTP request or heavy computations
$computedValue = 'foobar';
return $computedValue;
});
echo $value; // 'foobar'
// ... and to remove the cache key
$cache->delete('my_cache_key');
});
$app->run();
return [
'cache' => [
// At the bare minimum you must => [],
],
// Some other Adaptor. Keys are the names for each adaptor
'someOtherAdaptor' => [
'type' => 'local',
'options' => [
'root' => '/tmp/pimple'
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'APCu',
'options' => [
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'defaultLifetime' => 0, // Optional : the default lifetime (in seconds) for cache items. Default: 0
'version' => null, // Optional : Version of the cache items.
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'Array',
'options' => [
'defaultLifetime' => 0, // Optional : the default lifetime (in seconds) for cache items. Default: 0
'storeSerialized' => true, // Optional : values saved in the cache are serialized before storing them Default: true
'maxLifetime' => 0, // Optional : the maximum lifetime (in seconds) of the entire cache. Default: 0
'maxItems' => 0, // Optional : the maximum number of items that can be stored in the cache. Default: 0
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'Chain',
'options' => [
'adapters' => [], // Required : The ordered list of adapter service names to fetch cached items
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'maxLifetime' => 0, // Optional : The max lifetime of items propagated from lower adapters to upper ones
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'Couchbase',
'options' => [
// Connection config
// You must provide a client service, dsn(s) or connection information
'client' => 'service-name', // Couch Service name. Will be pulled from the container.
'dsn' => 'string or array', // Dsn for connections. Can be one dsn or an array of dsn's
// Manual connection
'username' => 'username', // Required for manual connection
'password' => 'password', // Required for manual connection
'operationTimeout' => 2500000, // Optional. Default: 2500000
'configTimeout' => 5000000, // Optional. Default: 5000000
'configNodeTimeout' => 2000000, // Optional. Default: 2000000
'viewTimeout' => 75000000, // Optional. Default: 75000000
'httpTimeout' => 75000000, // Optional. Default: 75000000
'configDelay' => 10000, // Optional. Default: 10000
'htconfigIdleTimeout' => 4294967295, // Optional. Default: 4294967295
'durabilityInterval' => 100000, // Optional. Default: 100000
'durabilityTimeout' => 5000000, // Optional. Default: 5000000
// Cache Config
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'maxLifetime' => 0, // Optional : The max lifetime of items propagated from lower adapters to upper ones
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'Filesystem',
'options' => [
'directory' => '', // Optional : The main cache directory. Default: directory is created inside the system temporary directory
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'defaultLifetime' => 0, // Optional : the default lifetime (in seconds) for cache items. Default: '0'
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'Memcached',
'options' => [
// Connection config
// A client service, or dsn(s). Default: localhost
'client' => 'service-name', // Memcached service name. Will be pulled from the container.
'dsn' => 'string or array', // Dsn for connections. Can be one dsn or an array of dsn's
// Options
'auto_eject_hosts' => false, // Optional. Default: false
'buffer_writes' => false, // Optional. Default: false
'compression' => true, // Optional. Default: true
'compression_type' => 'fastlz', // Optional. Default: Varies based on flags used at compilation
'connect_timeout' => 1000, // Optional. Default: 1000
'distribution' => 'consistent', // Optional. Default: consistent
'hash' => 'md5', // Optional. Default: md5
'libketama_compatible' => true, // Optional. Default: true
'no_block' => true, // Optional. Default: true
'number_of_replicas' => 0, // Optional. Default: 0
'prefix_key' => '', // Optional. Default: empty string
'poll_timeout' => 1000, // Optional. Default: 1000
'randomize_replica_read' => false, // Optional. Default: false
'recv_timeout' => 0, // Optional. Default: 0
'retry_timeout' => 0, // Optional. Default: 0
'send_timeout' => 0, // Optional. Default: 0
'serializer' => 'php', // Optional. Default: php
'server_failure_limit' => 0, // Optional. Default: 0
'socket_recv_size' => 0, // Optional. Default: varies by platform and kernel
'socket_send_size' => 0, // Optional. Default: varies by platform and kernel
'tcp_keepalive' => false, // Optional. Default: false
'tcp_nodelay' => false, // Optional. Default: false
'use_udp' => false, // Optional. Default: false
'verify_key' => false, // Optional. Default: false
// Cache Config
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'maxLifetime' => 0, // Optional : The max lifetime of items propagated from lower adapters to upper ones
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'PDO',
'options' => [
'client' => 'service-name', // Required: A client service, or dsn(s).
'db_table' => 'cache_items', // Optional. The name of the table. Default: cache_items
'db_id_col' => 'item_id', // Optional. The column where to store the cache id. Default: item_id
'db_data_col' => 'item_data', // Optional. The column where to store the cache data. Default: item_data
'db_lifetime_col' => 'item_lifetime', // Optional. The column where to store the lifetime. Default: item_lifetime
'db_time_col' => 'item_time', // Optional. The column where to store the timestamp. Default: item_time
'db_username' => '', // Optional. The username when lazy-connect
'db_password' => '', // Optional. The password when lazy-connect
'db_connection_options' => '', // Optional. An array of driver-specific connection options
// Cache Config
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'maxLifetime' => 0, // Optional : The max lifetime of items propagated from lower adapters to upper ones
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'PhpArray',
'options' => [
'filePath' => __DIR__ . '/somefile.cache', // Required: Single file where values are cached
'backupCache' => 'service-name', // Required: A backup cache service
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'PhpFiles',
'options' => [
'directory' => '/some/dir/path', // Required: The main cache directory (the application needs read-write permissions on it)
// Cache Config
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'maxLifetime' => 0, // Optional : The max lifetime of items propagated from lower adapters to upper ones
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'proxy',
'options' => [
'psr6Service' => 'service-name', // Required: A PSR 6 cache service
// Cache Config
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'maxLifetime' => 0, // Optional : The max lifetime of items propagated from lower adapters to upper ones
],
],
],
];
return [
'cache' => [
'default' => [
'type' => 'Redis',
'options' => [
// Connection config
// A client service, or dsn(s) is s.
// Connection Options. Not needed if using a service.
'class' => '\Redis', // Optional. Specifies the connection library to return, either \Redis or \Predis\Client. Default: \Redis
'compression' => true, // Optional. Enables or disables compression of items. Default: true
'lazy' => false, // Optional. Enables or disables lazy connections to the backend. Default: false
'persistent' => 0, // Optional. Enables or disables use of persistent connections. Default: 0
'persistent_id' => 'some-id', // Optional. Specifies the persistent id string to use for a persistent connection. Default: null
'read_timeout' => 0, // Optional. Specifies the read timeout. Default: 0
'retry_interval' => 0, // Optional. Specifies the delay (in milliseconds) between reconnection attempts. Default: 0
'tcp_keepalive' => 0, // Optional. Specifies the TCP-keepalive timeout (in seconds) of the connection. Default: 0
'timeout' => 30, // Optional. Specifies the timeout (in seconds) used to connect to a Redis server. Default: 30
// Cache Config
'namespace' => '', // Optional : a string prefixed to the keys of the items.
'maxLifetime' => 0, // Optional : The max lifetime of items propagated from lower adapters to upper ones
],
],
],
];
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.