本文整理汇总了PHP中Zend_Service_WindowsAzure_Storage_DynamicTableEntity类的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Service_WindowsAzure_Storage_DynamicTableEntity类的具体用法?PHP Zend_Service_WindowsAzure_Storage_DynamicTableEntity怎么用?PHP Zend_Service_WindowsAzure_Storage_DynamicTableEntity使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zend_Service_WindowsAzure_Storage_DynamicTableEntity类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testSetAzureValues
/**
* Test set Azure values
*/
public function testSetAzureValues()
{
$values = array('PartitionKey' => 'partition1', 'RowKey' => '000001', 'Name' => 'Maarten', 'Age' => 25, 'Visible' => true);
$target = new Zend_Service_WindowsAzure_Storage_DynamicTableEntity();
$target->setAzureValues($values);
$target->setAzurePropertyType('Age', 'Edm.Int32');
$this->assertEquals('partition1', $target->getPartitionKey());
$this->assertEquals('000001', $target->getRowKey());
$this->assertEquals('Maarten', $target->Name);
$this->assertEquals(25, $target->Age);
$this->assertEquals('Edm.Int32', $target->getAzurePropertyType('Age'));
$this->assertEquals(true, $target->Visible);
}
示例2: deleteDocument
/**
* Delete document.
*
* @param mixed $document Document ID or Document object.
* @param array $options
* @return void
*/
public function deleteDocument($collectionName, $documentId, $options = null)
{
if ($documentId instanceof Zend_Cloud_DocumentService_Document) {
$documentId = $documentId->getId();
}
$documentId = $this->_validateDocumentId($documentId, $collectionName);
try {
$entity = new Zend_Service_WindowsAzure_Storage_DynamicTableEntity($documentId[0], $documentId[1]);
if (isset($options[self::VERIFY_ETAG])) {
$entity->setEtag($options[self::VERIFY_ETAG]);
}
$this->_storageClient->deleteEntity($collectionName, $entity, isset($options[self::VERIFY_ETAG]));
} catch (Zend_Service_WindowsAzure_Exception $e) {
if (strpos($e->getMessage(), "does not exist") === false) {
throw new Zend_Cloud_DocumentService_Exception('Error on document deletion: ' . $e->getMessage(), $e->getCode(), $e);
}
}
}
示例3: write
/**
* Write a specific session
*
* @param int $id Session Id
* @param string $serializedData Serialized PHP object
* @throws Exception
*/
public function write($id, $serializedData)
{
// Encode data
$serializedData = base64_encode(serialize($serializedData));
if (strlen($serializedData) >= self::MAX_TS_PROPERTY_SIZE && $this->_storageType == self::STORAGE_TYPE_TABLE) {
throw new Zend_Service_WindowsAzure_Exception('Session data exceeds the maximum allowed size of ' . self::MAX_TS_PROPERTY_SIZE . ' bytes that can be stored using table storage. Consider switching to a blob storage back-end or try reducing session data size.');
}
// Store data
if ($this->_storageType == self::STORAGE_TYPE_TABLE) {
// In table storage
$sessionRecord = new Zend_Service_WindowsAzure_Storage_DynamicTableEntity($this->_sessionContainerPartition, $id);
$sessionRecord->sessionExpires = time();
$sessionRecord->serializedData = $serializedData;
$sessionRecord->setAzurePropertyType('sessionExpires', 'Edm.Int32');
try {
$this->_storage->updateEntity($this->_sessionContainer, $sessionRecord);
} catch (Zend_Service_WindowsAzure_Exception $unknownRecord) {
$this->_storage->insertEntity($this->_sessionContainer, $sessionRecord);
}
} else {
if ($this->_storageType == self::STORAGE_TYPE_BLOB) {
// In blob storage
$this->_storage->putBlobData($this->_sessionContainer, $this->_sessionContainerPartition . '/' . $id, $serializedData, array('sessionexpires' => time()));
}
}
}
示例4: write
/**
* Write a specific session
*
* @param int $id Session Id
* @param string $serializedData Serialized PHP object
*/
public function write($id, $serializedData)
{
$sessionRecord = new Zend_Service_WindowsAzure_Storage_DynamicTableEntity($this->_sessionTablePartition, $id);
$sessionRecord->sessionExpires = time();
$sessionRecord->serializedData = base64_encode($serializedData);
$sessionRecord->setAzurePropertyType('sessionExpires', 'Edm.Int32');
try {
$this->_tableStorage->updateEntity($this->_sessionTable, $sessionRecord);
} catch (Zend_Service_WindowsAzure_Exception $unknownRecord) {
$this->_tableStorage->insertEntity($this->_sessionTable, $sessionRecord);
}
}
示例5: mergeEntity
/**
* Update entity by adding or updating properties
*
* @param string $tableName Table name
* @param Zend_Service_WindowsAzure_Storage_TableEntity $entity Entity to update
* @param boolean $verifyEtag Verify etag of the entity (used for concurrency)
* @param array $properties Properties to merge. All properties will be used when omitted.
* @throws Zend_Service_WindowsAzure_Exception
*/
public function mergeEntity($tableName = '', Zend_Service_WindowsAzure_Storage_TableEntity $entity = null, $verifyEtag = false, $properties = array())
{
$mergeEntity = null;
if (is_array($properties) && count($properties) > 0) {
// Build a new object
$mergeEntity = new Zend_Service_WindowsAzure_Storage_DynamicTableEntity($entity->getPartitionKey(), $entity->getRowKey());
// Keep only values mentioned in $properties
$azureValues = $entity->getAzureValues();
foreach ($azureValues as $key => $value) {
if (in_array($value->Name, $properties)) {
$mergeEntity->setAzureProperty($value->Name, $value->Value, $value->Type);
}
}
} else {
$mergeEntity = $entity;
}
// Ensure entity timestamp matches updated timestamp
$entity->setTimestamp(new DateTime());
return $this->_changeEntity(Zend_Http_Client::MERGE, $tableName, $mergeEntity, $verifyEtag);
}