yiiapi/tests/framework/caching/CCacheDependencyTest.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
Yii::import('system.caching.dependencies.CFileCacheDependency');
class CCacheDependencyTest extends CTestCase
{
protected $_cacheDependentData=null;
public function setCacheDependentData($cacheDependentData)
{
$this->_cacheDependentData = $cacheDependentData;
}
public function getCacheDependentData()
{
return $this->_cacheDependentData;
}
public function testReuseDependentData()
{
MockCacheDependency::$generateDependentDataCallback=array($this,'getCacheDependentData');
$dependency1=new MockCacheDependency();
$dependency1->reuseDependentData = true;
$dependency2=new MockCacheDependency();
$dependency2->reuseDependentData = true;
CCacheDependency::resetReusableData();
$this->setCacheDependentData('start');
$dependency1->evaluateDependency();
$dependency2->evaluateDependency();
$this->assertFalse($dependency1->getHasChanged(),'Initial dependency1 changed!');
$this->assertFalse($dependency2->getHasChanged(),'Initial dependency2 changed!');
$this->assertEquals(1,MockCacheDependency::$generateDependentDataCalled,'Extra invokations of "generateDependentData()"!');
// New request:
CCacheDependency::resetReusableData();
MockCacheDependency::$generateDependentDataCalled=0;
$this->assertFalse($dependency1->getHasChanged(),'Dependency1 changed for new request!');
$this->assertFalse($dependency2->getHasChanged(),'Dependency2 changed for new request!');
$this->assertEquals(1,MockCacheDependency::$generateDependentDataCalled,'Extra invokations of "generateDependentData()"!');
// New request:
CCacheDependency::resetReusableData();
MockCacheDependency::$generateDependentDataCalled=0;
$this->setCacheDependentData('change1');
$this->assertTrue($dependency1->getHasChanged(),'Dependency1 is not changed after source change!');
$dependency1->evaluateDependency();
// New request:
CCacheDependency::resetReusableData();
MockCacheDependency::$generateDependentDataCalled=0;
$this->assertFalse($dependency1->getHasChanged(),'Dependency1 has been changed!');
$this->assertTrue($dependency2->getHasChanged(),'Dependency2 has not been changed!');
$this->assertEquals(1,MockCacheDependency::$generateDependentDataCalled,'Extra invokations of "generateDependentData()"!');
}
}
class MockCacheDependency extends CCacheDependency
{
public static $generateDependentDataCallback;
public static $generateDependentDataCalled = 0;
后面还有 7 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
