kuikui / memcache-service-provider
Memcache integration for Silex.
Installs: 28 498
Dependents: 2
Suggesters: 0
Security: 0
Stars: 12
Watchers: 5
Forks: 8
Open Issues: 2
Requires (Dev)
- atoum/atoum: dev-master
- silex/silex: ~2.0@dev
This package is not auto-updated.
Last update: 2024-12-21 14:12:13 UTC
README
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.
Installation
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
Registering
$app->register(new KuiKui\MemcacheServiceProvider\ServiceProvider());
Example
$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(); });
Options
After registration, you can customize the service with these options :
Connections
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)
Class
Allows you to choose between the two PHP Memcache libraries : \Memcache
or \Memcached
.
$app['memcache.class'] = '\Memcached'; // default: '\Memcache'
Wrapper
- 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;
Duration
If you use SimpleWrapper
, you can configure the default duration of cached data (in seconds):
$app['memcache.default_duration'] = 60; // default: 0 (no limit)
Running the tests
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
Dependencies
PHP 5.5+
MemcacheServiceProvider needs one of these PHP modules to be installed :
Credits
Deeply inspired by MemcacheServiceProvider from RafaĆ Filipek.
Tested with atoum.
License
The MemcacheServiceProvider is licensed under the MIT license.