mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 14:46:19 +08:00 
			
		
		
		
	Fixes #16469: Allow cache to be specified as interface and to be configured in DI container
This commit is contained in:
		
				
					committed by
					
						
						Alexander Makarov
					
				
			
			
				
	
			
			
			
						parent
						
							4656e2dcdc
						
					
				
				
					commit
					b5be47321b
				
			@ -92,6 +92,7 @@ Yii Framework 2 Change Log
 | 
				
			|||||||
- Bug #14950: Fixed `yii\i18n\Formatter` methods `asInteger`, `asDecimal`, `asPercent`, and `asCurrency` outputs for very big numbers (bizley)
 | 
					- Bug #14950: Fixed `yii\i18n\Formatter` methods `asInteger`, `asDecimal`, `asPercent`, and `asCurrency` outputs for very big numbers (bizley)
 | 
				
			||||||
- Bug #16897: Fixed `yii\db\sqlite\Schema` missing primary key constraint detection in case of `INTEGER PRIMARY KEY` (bizley)
 | 
					- Bug #16897: Fixed `yii\db\sqlite\Schema` missing primary key constraint detection in case of `INTEGER PRIMARY KEY` (bizley)
 | 
				
			||||||
- Bug #16687: Add missing translations for `nl-NL` durations used in `yii\i18n\Formatter::asDuration()` (alexeevdv)
 | 
					- Bug #16687: Add missing translations for `nl-NL` durations used in `yii\i18n\Formatter::asDuration()` (alexeevdv)
 | 
				
			||||||
 | 
					- Bug #16469: Allow cache to be specified as interface and to be configured in DI container (alexeevdv)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2.0.15.1 March 21, 2018
 | 
					2.0.15.1 March 21, 2018
 | 
				
			||||||
-----------------------
 | 
					-----------------------
 | 
				
			||||||
 | 
				
			|||||||
@ -290,7 +290,7 @@ class CacheController extends Controller
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    private function isCacheClass($className)
 | 
					    private function isCacheClass($className)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return is_subclass_of($className, 'yii\caching\CacheInterface');
 | 
					        return is_subclass_of($className, 'yii\caching\CacheInterface') || $className === 'yii\caching\CacheInterface';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -53,6 +53,7 @@ class CacheControllerTest extends TestCase
 | 
				
			|||||||
                'secondCache' => function () {
 | 
					                'secondCache' => function () {
 | 
				
			||||||
                    return new ArrayCache();
 | 
					                    return new ArrayCache();
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
 | 
					                'thirdCache' => 'yii\caching\CacheInterface',
 | 
				
			||||||
                'session' => 'yii\web\CacheSession', // should be ignored at `actionFlushAll()`
 | 
					                'session' => 'yii\web\CacheSession', // should be ignored at `actionFlushAll()`
 | 
				
			||||||
                'db' => [
 | 
					                'db' => [
 | 
				
			||||||
                    'class' => isset($config['class']) ? $config['class'] : 'yii\db\Connection',
 | 
					                    'class' => isset($config['class']) ? $config['class'] : 'yii\db\Connection',
 | 
				
			||||||
@ -63,6 +64,13 @@ class CacheControllerTest extends TestCase
 | 
				
			|||||||
                    'schemaCache' => 'firstCache',
 | 
					                    'schemaCache' => 'firstCache',
 | 
				
			||||||
                ],
 | 
					                ],
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
 | 
					            'container' => [
 | 
				
			||||||
 | 
					                'singletons' => [
 | 
				
			||||||
 | 
					                    'yii\caching\CacheInterface' => [
 | 
				
			||||||
 | 
					                        'class' => 'yii\caching\ArrayCache',
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (isset($config['fixture'])) {
 | 
					        if (isset($config['fixture'])) {
 | 
				
			||||||
@ -140,11 +148,13 @@ class CacheControllerTest extends TestCase
 | 
				
			|||||||
    public function testFlushAll()
 | 
					    public function testFlushAll()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Yii::$app->firstCache->set('firstKey', 'firstValue');
 | 
					        Yii::$app->firstCache->set('firstKey', 'firstValue');
 | 
				
			||||||
        Yii::$app->secondCache->set('thirdKey', 'secondValue');
 | 
					        Yii::$app->secondCache->set('secondKey', 'secondValue');
 | 
				
			||||||
 | 
					        Yii::$app->thirdCache->set('thirdKey', 'thirdValue');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->_cacheController->actionFlushAll();
 | 
					        $this->_cacheController->actionFlushAll();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->assertFalse(Yii::$app->firstCache->get('firstKey'), 'first cache data should be flushed');
 | 
					        $this->assertFalse(Yii::$app->firstCache->get('firstKey'), 'first cache data should be flushed');
 | 
				
			||||||
        $this->assertFalse(Yii::$app->secondCache->get('thirdKey'), 'second cache data should be flushed');
 | 
					        $this->assertFalse(Yii::$app->secondCache->get('secondKey'), 'second cache data should be flushed');
 | 
				
			||||||
 | 
					        $this->assertFalse(Yii::$app->thirdCache->get('thirdKey'), 'third cache data should be flushed');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user