# Setup Zend-Cache

**URL:** <https://discourse.laminas.dev/t/setup-zend-cache/815>\
**Category:** Components & MVC\
**Created:** [November 15, 2018, 9:47am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815 "2018-11-15T09:47:18Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![b1ger](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/b1ger/32/410_2.png) [@b1ger](https://discourse.laminas.dev/u/b1ger)\
**Post date:** [November 15, 2018, 9:47am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/1 "2018-11-15T09:47:18Z")

</div>

Hello.  
Could You explain me, how I have to setup zend-cache in main configuration file service\_manager’s section.  
In documentation I have tutorial, how to do it by calling service manager’s methods.

I have configuration, but it only throws exceptions, if I want to get service in application.

> ```
> 'service_manager' => [
> 'factories' => [
> 'storage' => 'Zend\Cache\Service\StorageCacheFactory',
> ],
> ],
> 'storage' => [
> 'adapter' => [
> 'name' => 'apc',
> 'options' => [
> 'cache_dir' => __DIR__. '/../../data/cache',
> 'ttl' => (60 * 60 * 24) * 1,
> ],
> ],
> 
> ```
> 
> ]

May be I have to use another factory, or use section ‘abstract\_factories’.

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [November 15, 2018, 9:49am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/2 "2018-11-15T09:49:04Z")

</div>

> [@b1ger](#):
>
> …but it only throws exceptions…

We can’t see your exceptions…

---

<div class="post-metadata">

**Author:** ![b1ger](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/b1ger/32/410_2.png) [@b1ger](https://discourse.laminas.dev/u/b1ger)\
**Post date:** [November 15, 2018, 9:54am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/3 "2018-11-15T09:54:29Z")

</div>

If I try to get my cache service  
`$serviceManager->get('storage');`

**Fatal error** : Uncaught Zend\Cache\Exception\InvalidArgumentException: Missing “adapter” in /var/www/vendor/zendframework/zend-cache/src/StorageFactory.php:56 Stack trace: #0 /var/www/vendor/zendframework/zend-cache/src/Service/StorageCacheFactory.php(31): Zend\Cache\StorageFactory::factory(Array) #1 /var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(764): Zend\Cache\Service\StorageCacheFactory-\>\_\_invoke(Object(Zend\ServiceManager\ServiceManager), ‘storage’, NULL) #2 /var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(200): Zend\ServiceManager\ServiceManager-\>doCreate(‘storage’) #3 /var/www/module/Application/Module.php(45): Zend\ServiceManager\ServiceManager-\>get(‘storage’) #4 /var/www/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Application\Module-\>onBootstrap(Object(Zend\Mvc\MvcEvent)) #5 /var/www/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager-\>triggerListeners(Object(Zend\Mvc\MvcEvent)) #6 /var/www/vendor/ze in **/var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php** on line **771**

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [November 15, 2018, 10:05am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/4 "2018-11-15T10:05:06Z")

</div>

In a zend-mvc based application you can register zend-cache as module. Any configuration for the factories is not needed then. Now you can put your configuration under the config-key `caches`.

---

<div class="post-metadata">

**Author:** ![samsonasik](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/samsonasik/32/777_2.png) [@samsonasik](https://discourse.laminas.dev/u/samsonasik)\
**Post date:** [November 19, 2018, 11:45am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/5 "2018-11-19T11:45:58Z")

</div>

If you already have `'Zend\Cache'` in config/modules.config.php, you can register under `caches` config:

```php
// config/autoload/global.php
return [
    // ...
    'caches' => [

        // service cache adapter apcu
        'apcu' => [
            'adapter' => 'apcu',
            'options' => [
                'ttl' => 7200,
            ],
        ],

        // service cache adapter filesystem
        'filesystem' => [
            'adapter' => 'filesystem',
            'options' => [
                'ttl' => 7200,
	        'cache_dir' => './data/cache',
            ],
        ],

    ],
    // ...
];

```

so, via service manager, you can call:

```php
$serviceManager->get('apcu');
$serviceManager->get('filesystem');

```

---

<div class="post-metadata">

**Author:** ![jobsfan](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/jobsfan/32/399_2.png) [@jobsfan](https://discourse.laminas.dev/u/jobsfan)\
**Post date:** [November 28, 2018, 12:18am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/6 "2018-11-28T00:18:04Z")

</div>

what does apcu mean?

---

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [November 28, 2018, 5:51am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/7 "2018-11-28T05:51:41Z")

</div>

> [@jobsfan](#):
>
> what does apcu mean?

“APC User Cache” - [https://php.net/manual/en/book.apcu.php](https://php.net/manual/en/book.apcu.php)

---

<div class="post-metadata">

**Author:** ![jobsfan](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/jobsfan/32/399_2.png) [@jobsfan](https://discourse.laminas.dev/u/jobsfan)\
**Post date:** [November 28, 2018, 8:02am UTC](https://discourse.laminas.dev/t/setup-zend-cache/815/8 "2018-11-28T08:02:36Z")

</div>

Ok, thank you!😄
