本文整理匯總了PHP中Zend\Cache\Storage\StorageInterface::getCapabilities方法的典型用法代碼示例。如果您正苦於以下問題:PHP StorageInterface::getCapabilities方法的具體用法?PHP StorageInterface::getCapabilities怎麽用?PHP StorageInterface::getCapabilities使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Zend\Cache\Storage\StorageInterface
的用法示例。
在下文中一共展示了StorageInterface::getCapabilities方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: validateCache
/**
* Validates whether we have a cache and whether it has the right capabilities
*
* @throws \Exception if no cache has been set or its capabilities meet the requirements
*/
protected static function validateCache()
{
if (is_null(self::$cache)) {
throw new \RuntimeException('No cache storage has been set');
}
$supportedDataTypes = self::$cache->getCapabilities()->getSupportedDatatypes();
if (!array_key_exists('array', $supportedDataTypes) || !$supportedDataTypes['array']) {
throw new \UnexpectedValueException('Cache storage does not support array datatype');
}
$supportedMetadata = self::$cache->getCapabilities()->getSupportedMetadata();
if (!in_array('mtime', $supportedMetadata)) {
throw new \UnexpectedValueException('Cache storage does not support mtime metadata');
}
}
示例2: testClearExpired
public function testClearExpired()
{
if (!$this->_storage instanceof ClearExpiredInterface) {
$this->markTestSkipped("Storage doesn't implement ClearExpiredInterface");
}
$capabilities = $this->_storage->getCapabilities();
$ttl = $capabilities->getTtlPrecision();
$this->_options->setTtl($ttl);
$this->assertTrue($this->_storage->setItem('key1', 'value1'));
// wait until the first item expired
$wait = $ttl + $capabilities->getTtlPrecision();
usleep($wait * 2000000);
$this->assertTrue($this->_storage->setItem('key2', 'value2'));
$this->assertTrue($this->_storage->clearExpired());
if ($capabilities->getUseRequestTime()) {
$this->assertTrue($this->_storage->hasItem('key1'));
} else {
$this->assertFalse($this->_storage->hasItem('key1', array('ttl' => 0)));
}
$this->assertTrue($this->_storage->hasItem('key2'));
}
示例3: testSetAndGetItemOfDifferentTypes
public function testSetAndGetItemOfDifferentTypes()
{
$capabilities = $this->_storage->getCapabilities();
$types = array('NULL' => null, 'boolean' => true, 'integer' => 12345, 'double' => 123.45, 'string' => 'string', 'array' => array('one', 'tow' => 'two', 'three' => array('four' => 'four')), 'object' => new \stdClass(), 'resource' => fopen(__FILE__, 'r'));
$types['object']->one = 'one';
$types['object']->two = new \stdClass();
$types['object']->two->three = 'three';
foreach ($capabilities->getSupportedDatatypes() as $sourceType => $targetType) {
if ($targetType === false) {
continue;
}
$value = $types[$sourceType];
$this->assertTrue($this->_storage->setItem('key', $value), "Failed to set type '{$sourceType}'");
if ($targetType === true) {
$this->assertSame($value, $this->_storage->getItem('key'));
} elseif (is_string($targetType)) {
settype($value, $targetType);
$this->assertEquals($value, $this->_storage->getItem('key'));
}
}
}
示例4: delegatesGetCapabilities
/**
* @test
*/
public function delegatesGetCapabilities()
{
$this->storage->getCapabilities()->willReturn(true);
$return = $this->cache->getCapabilities();
$this->assertTrue($return);
}
示例5: getCapabilities
public function getCapabilities()
{
return $this->storage->getCapabilities();
}