Просмотр исходного кода

ZF-8932: allow empty options passed to CacheManager

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@20611 44c647ce-9c0f-0410-b52a-842ac1e357ba
matthew 16 лет назад
Родитель
Сommit
1479b2a85f

+ 2 - 2
library/Zend/Cache/Manager.php

@@ -166,8 +166,8 @@ class Zend_Cache_Manager
             $this->_caches[$name] = Zend_Cache::factory(
                 $this->_optionTemplates[$name]['frontend']['name'],
                 $this->_optionTemplates[$name]['backend']['name'],
-                $this->_optionTemplates[$name]['frontend']['options'],
-                $this->_optionTemplates[$name]['backend']['options']
+                isset($this->_optionTemplates[$name]['frontend']['options']) ? $this->_optionTemplates[$name]['frontend']['options'] : array(),
+                isset($this->_optionTemplates[$name]['backend']['options']) ? $this->_optionTemplates[$name]['backend']['options'] : array()
             );
             return $this->_caches[$name];
         }

+ 20 - 0
tests/Zend/Application/Resource/CacheManagerTest.php

@@ -162,6 +162,26 @@ class Zend_Application_Resource_CacheManagerTest extends PHPUnit_Framework_TestC
         $this->assertEquals('BlackHole', $cacheTemplate['backend']['name']);
     }
 
+    public function testEmptyBackendOptionsShouldNotResultInError()
+    {
+        $options = array(
+            'foo' => array(
+                'frontend' => array(
+                    'name' => 'Core',
+                    'options' => array(
+                        'lifetime' => 7200,
+                    ),
+                ),
+                'backend' => array(
+                    'name' => 'black.hole',
+                ),
+            ),
+        );
+        $resource = new Zend_Application_Resource_Cachemanager($options);
+        $manager = $resource->init();
+        $cache = $manager->getCache('foo');
+        $this->assertTrue($cache instanceof Zend_Cache_Core);
+    }
 }
 
 if (PHPUnit_MAIN_METHOD == 'Zend_Application_Resource_CacheManagerTest::main') {