aequasi/cache-bundle


Integrated Cache Bundle for Symfony

Language: PHP


This Bundle is Deprecated

This bundle is being replaced by PHP-Cache. Check it out!

Aequasi cache-bundle Build Status

Cache Bundle for Symfony 2

Creates services in Symfony 2, for cache, that can also be used with doctrines three cache types (metadata, result, and query). It also provides functionality for session handler support, and Router support.

The respective cache extensions will be required for your project.

Redis uses the php redis extension.

Requirements

  • PHP >= 5.6, < 7.1
  • Symfony >= 2.7, < 4.0
  • Composer

To Install

Run the following in your project root, assuming you have composer set up for your project

composer.phar require aequasi/cache-bundle

Add the bundle to app/AppKernel.php

$bundles(
    ...
       new Aequasi\Bundle\CacheBundle\AequasiCacheBundle(),
    ...
);

Then add parameters (probably in config.yml) for your servers, and options

aequasi_cache:
    instances:
        default:
          persistent: true # Boolean or persistent_id
          namespace: mc
          type: memcached
          hosts:
              - { host: localhost, port: 11211 }

To see all the config options, run php app/console config:dump-reference aequasi_cache to view the config settings

Doctrine

This bundle allows you to use its services for Doctrine's caching methods of metadata, result, and query.

If you want doctrine to use this as the result and query cache, add this

aequasi_cache:
    doctrine:
        enabled: true
        metadata:
            instance: default
            entity_managers:   [ default ]          # the name of your entity_manager connection
            document_managers: [ default ]       # the name of your document_manager connection
        result:
            instance: default
            entity_managers:   [ default, read ]  # you may specify multiple entity_managers
        query:
            instance: default
            entity_managers: [ default ]

Session

This bundle even allows you to store your session data in one of your cache clusters. To enable:

aequasi_cache:
    session:
        enabled: true
        instance: default
        prefix: "session_"
        ttl: 7200

Router

This bundle also provides router caching, to help speed that section up. To enable:

aequasi_cache:
    router:
        enabled: true
        instance: default

If you change any of your routes, you will need to clear all of the route_* keys in your cache.

To Use

To use this with doctrine's entity manager, just make sure you have useResultCache and/or useQueryCache set to true. If you want to use the user cache, just grab the service out of the container like so:

// Change default to the name of your instance
$cache = $container->get( 'aequasi_cache.instance.default' );
// Or
$cache = $container->get( 'aequasi_cache.default' );

Here is an example usage of the service:

$cache = $this->get( 'aequasi_cache.instance.default' );
$item = $cache->getItem('test');
if ($item->isHit()) {
    var_dump($item->get());

    return;
}

$cache->saveItem('test', $em->find('AcmeDemoBundle:User', 1), 3600);

Need Help?

Create an issue if you've found a bug, or ping me on twitter: @aequasi

Project Statistics

Sourcerank 6
Repository Size 265 KB
Stars 36
Forks 11
Watchers 9
Open issues 0
Dependencies 6
Contributors 13
Tags 42
Created
Last updated
Last pushed

Top Contributors See all

Aaron Scherer aschererue Tobias Nyholm Julius Beckmann Phobetor Christian Daguerre Jean-Philippe Bidegain Scrutinizer Auto-Fixer Volkan Altan Alexandre Paixao Jeroen v.d. Gulik Luis Cordova Bitdeli Chef

Packages Referencing this Repo

aequasi/cache-bundle
Creates services in Symfony 2, for cache, that can also be used with doctrines three cache types ...
Latest release 3.0.2 - Updated - 36 stars

Recent Tags See all

3.0.2 July 29, 2015
3.0.1 June 22, 2015
3.0.0 January 01, 2015
2.4.0 November 10, 2014
2.3.1 July 08, 2014
2.3.0 April 22, 2014
2.2.3 March 06, 2014
2.2.2 February 17, 2014
2.2.1 February 17, 2014
2.2.0 February 17, 2014
2.1.5 February 07, 2014
2.1.4 February 07, 2014
2.1.3 February 04, 2014
2.1.2 February 04, 2014
2.1.0 February 04, 2014

Something wrong with this page? Make a suggestion

Last synced: 2016-11-14 19:06:43 UTC

Login to resync this repository