sedpro / cachedecorator
Simple cache decorator module for zf2 projects
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:zf2-module
pkg:composer/sedpro/cachedecorator
Requires
- php: >=5.4
- zendframework/zendframework: >=2.0
This package is not auto-updated.
Last update: 2025-12-21 01:40:45 UTC
README
Version 0.1
This module allows you simple caching of your service methods.
The main idea was to create a caching module, which can be connected to a project without changing code. All you need to do is ajust your config.
Installation
For the installation uses composer composer.
php composer.phar require sedpro/cachedecorator:dev-master
Add this project in your composer.json:
"require": { "sedpro/cachedecorator": "dev-master" }
Post Installation
Configuration:
-
Add the module of
config/application.config.phpunder the arraymodules, insertCachedecorator -
Remove services, you want to cache, from getServiceConfig function in file
Module.php -
In your
config/autoload/global.phpfile add two values:'caches' => [ \Cachedecorator\Module::STORAGE => [ 'adapter' => [ 'name' => 'memcached', ], 'options' => [ 'ttl' => 3600, 'servers' => [ 'node0' => [ 'host' => '127.0.0.1', 'port' => 11211, ], ], 'namespace' => 'some_ns:', ], ], ], \Cachedecorator\Module::METHODS => [ 'Application\Service\Example' => [ 'getItems', ], ],
'caches' contains all caches you use in project. They will be instantiate in abstact factory Zend\Cache\Service\StorageCacheAbstractServiceFactory which is called in vendor/sedpro/cachedecorator/config/module.config.php. If you are already using this factory, there will be no conflict.
'\Cachedecorator\Module::STORAGE' is cache storage adapter, used to store the output of your services.
'\Cachedecorator\Module::METHODS' is list of services you want to cache. Cached will be only listed functions.
Example
If you use the configuration, showed above, method getItems of class Application\Service\Example will be cached. You can use it as usual:
$exampleService = $this->getServiceLocator()->get('Application\Service\Example'); $items = $exampleService->getItems(); // cached $values = $exampleService->getValues(); // not cached