It provides access to :
- a simple Memcache wrapper with very simple API for standard use,
- or your own Memcache wrapper with
$app
injection for custom use, - or a genuine Memcache(d) object for advanced use.
Create a composer.json in your projects root-directory :
{
"require": {
"kuikui/memcache-service-provider": "~2.0"
}
}
and run :
$ curl -sS http://getcomposer.org/installer | php
$ php composer.phar install
$app->register(new KuiKui\MemcacheServiceProvider\ServiceProvider());
$app->register(new KuiKui\MemcacheServiceProvider\ServiceProvider());
// Simple use
$app['memcache']->set('key', 'value');
$value = $app['memcache']->get('key');
$app['memcache']->delete('key');
// Advanced use : use \Closure to generate default value and save it during a retrieve process
$value = $app['memcache']->get('key', function() use ($app) {
return $app['some_other_service']->getData();
});
After registration, you can customize the service with these options :
Allows you to set up one or more Memcache connections.
Each connection should be defined as follows array('ip_address', port)
.
$app['memcache.connections'] = array(
array('127.0.0.1', 11211),
array('10.0.1.118', 12345)
; // default: array('127.0.0.1', 11211)
Allows you to choose between the two PHP Memcache libraries : \Memcache
or \Memcached
.
$app['memcache.class'] = '\Memcached'; // default: '\Memcache'
- By default, you access to an instance of
KuiKui\MemcacheServiceProvider\SimpleWrapper
. - For custom needs, you can use your own wrapper :
$app['memcache.wrapper'] = '\My\Custom\Wrapper';
- Or you can have direct acces to Memcache(d) object :
$app['memcache.wrapper'] = false;
If you use SimpleWrapper
, you can configure the default duration of cached data (in seconds):
$app['memcache.default_duration'] = 60; // default: 0 (no limit)
The development environment is provided by Vagrant and the Xotelia box.
$ cp Vagrantfile.dist Vagrantfile
$ vagrant up
$ vagrant ssh
$ cd /vagrant
$ composer install
$ ./vendor/bin/atoum
PHP 5.5+
MemcacheServiceProvider needs one of these PHP modules to be installed :
Deeply inspired by MemcacheServiceProvider from Rafał Filipek.
Tested with atoum.
The MemcacheServiceProvider is licensed under the MIT license.