Frank Brückner преди 12 години
родител
ревизия
23349331fd
променени са 2 файла, в които са добавени 37 реда и са изтрити 3 реда
  1. 13 3
      library/Zend/Cache/Manager.php
  2. 24 0
      tests/Zend/Cache/ManagerTest.php

+ 13 - 3
library/Zend/Cache/Manager.php

@@ -197,8 +197,9 @@ class Zend_Cache_Manager
      * be lazy loaded
      *
      * @param  string $name
-     * @param  array $options
+     * @param  array  $options
      * @return Zend_Cache_Manager
+     * @throws Zend_Cache_Exception
      */
     public function setCacheTemplate($name, $options)
     {
@@ -284,15 +285,24 @@ class Zend_Cache_Manager
             $current['backend']['name'] = $options['backend']['name'];
         }
         if (isset($options['frontend']['options'])) {
-            foreach ($options['frontend']['options'] as $key=>$value) {
+            foreach ($options['frontend']['options'] as $key => $value) {
                 $current['frontend']['options'][$key] = $value;
             }
         }
         if (isset($options['backend']['options'])) {
-            foreach ($options['backend']['options'] as $key=>$value) {
+            foreach ($options['backend']['options'] as $key => $value) {
                 $current['backend']['options'][$key] = $value;
             }
         }
+        if (isset($options['frontend']['customFrontendNaming'])) {
+            $current['frontend']['customFrontendNaming'] = $options['frontend']['customFrontendNaming'];
+        }
+        if (isset($options['backend']['customBackendNaming'])) {
+            $current['backend']['customBackendNaming'] = $options['backend']['customBackendNaming'];
+        }
+        if (isset($options['frontendBackendAutoload'])) {
+            $current['frontendBackendAutoload'] = $options['frontendBackendAutoload'];
+        }
         return $current;
     }
 }

+ 24 - 0
tests/Zend/Cache/ManagerTest.php

@@ -235,6 +235,30 @@ class Zend_Cache_ManagerTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($tagCache instanceof Zend_Cache_Core);
     }
 
+    /**
+     * @group GH-189
+     */
+    public function testSetsOptionsWithCustomFrontendAndBackendNamingAndAutoload()
+    {
+        $manager = new Zend_Cache_Manager;
+        $manager->setTemplateOptions(
+            'page',
+            array(
+                 'frontend' => array(
+                     'customFrontendNaming' => true,
+                 ),
+                 'backend'  => array(
+                     'customBackendNaming' => true,
+                 ),
+                 'frontendBackendAutoload' => true,
+            )
+        );
+        $config = $manager->getCacheTemplate('page');
+        $this->assertTrue($config['frontend']['customFrontendNaming']);
+        $this->assertTrue($config['backend']['customBackendNaming']);
+        $this->assertTrue($config['frontendBackendAutoload']);
+    }
+
     // Helper Methods
 
     public function mkdir()