This repository has been archived by the owner on Sep 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
An extension to sfRedisPlugin that adds ORM-like functionality. Think of it as OHM for PHP.
License
scraton/sfRedisPlugin
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
sfRedisPlugin ============= The sfRedis plugin provides redis support to symfony (through Predis). Installation ------------ You can install this plugin the usual way (RTFM), or if you want to work with the trunk: $ cd plugins $ svn co http://svn.symfony-project.com/plugins/sfRedisPlugin/trunk/ sfRedisPlugin Then activate the plugin in the `config/ProjectConfiguration.class.php` file. Configuration ------------- Edit `config/redis.yml` to suit your redis installation : [yml] all: connections: local: host: 127.0.0.1 port: 6379 You can also use URL based notation : [yml] all: connections: local: redis://127.0.0.1:6379 By default, there is a connection named "default" which targets a local redis server. All available parameters : [yml] all: connections: local: host: 127.0.0.1 port: 6379 database: 0 password: secret connection_timeout: 5 read_write_timeout: 30 You can also use Predis cluster feature : [yml] all: connections: myshard: - redis://192.168.0.1:6379 - redis://192.168.0.2:6379 Get a predis client ------------------- To create a connection, use `sfRedis::getClient()` with the connection name as parameter : [php] $redis = sfRedis::getClient('myshard'); Or empty to use "default" connection: [php] $redis = sfRedis::getClient(); Then follow Predis API to query the database [php] $redis->set('name', 'value'); $value = $redis->get('name'); Symfony cache ------------- The sfRedisPlugin provides a `sfRedisCache` class to use for view and/or i18n symfony cache. To enable it, edit `config/factories.yml` : [yml] all: view_cache: class: sfRedisCache param: connection: default prefix: view:%SF_APP%:%SF_ENVIRONMENT% The parameter "connection" is the key defined in `config/redis.yml`. The parameter "prefix" is adjusted in this example. Doctrine cache -------------- The sfRedisPlugin provides a Doctrine cache backend. To enable it, edit `ProjectConfiguration::configureDoctrine` with : [php] $cacheDriver = new Doctrine_Cache_Redis(array('server' => 'redis://127.0.0.1:6379', 'prefix' => 'dql:')); $manager->setAttribute(Doctrine::ATTR_QUERY_CACHE, $cacheDriver); The option "prefix" is recommended to keep redis server keys clean. You can also pass a `Predis_Client` object as an option: [php] $redis = Predis_Client::create(...); $cacheDriver = new Doctrine_Cache_Redis(array('redis' => $redis)); $manager->setAttribute(Doctrine::ATTR_QUERY_CACHE, $cacheDriver); Since `sfRedis::getClient` returns a `Predis_Client`, you can use configuration from your `config/redis.yml`: [php] $cacheDriver = new Doctrine_Cache_Redis(array('redis' => sfRedis::getClient('local'), 'prefix' => 'dql:')); $manager->setAttribute(Doctrine::ATTR_QUERY_CACHE, $cacheDriver); Please note, you need to enable the `sfRedisPlugin` *before* the `sfDoctrinePlugin` to make the previous snippet work. TODO ---- * work with nginx HTTP redis module LINKS ----- * Predis http://github.com/nrk/predis * redis http://code.google.com/p/redis/
About
An extension to sfRedisPlugin that adds ORM-like functionality. Think of it as OHM for PHP.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published