protected function createStorageInstance() { $storageClient = null; if (TESTS_ZEND_SERVICE_WINDOWSAZURE_SESSIONHANDLER_RUNONPROD) { $storageClient = new Table(TESTS_ZEND_SERVICE_WINDOWSAZURE_TABLE_HOST_PROD, TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_ACCOUNT_PROD, TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_KEY_PROD, false, AbstractRetryPolicy::retryN(10, 250)); } else { $storageClient = new Table(TESTS_ZEND_SERVICE_WINDOWSAZURE_TABLE_HOST_DEV, TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_ACCOUNT_DEV, TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_KEY_DEV, true, AbstractRetryPolicy::retryN(10, 250)); } if (TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_USEPROXY) { $storageClient->setProxy(TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_USEPROXY, TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_PROXY, TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_PROXY_PORT, TESTS_ZEND_SERVICE_WINDOWSAZURE_STORAGE_PROXY_CREDENTIALS); } return $storageClient; }
/** * Query for documents stored in the document service. If a string is passed in * $query, the query string will be passed directly to the service. * * @param string $collectionName Collection name * @param string|\Zend\Cloud\DocumentService\Adapter\WindowsAzure\Query $query * @param array $options * @return array|\Zend\Cloud\DocumentService\DocumentSet */ public function query($collectionName, $query, $options = null) { try { if ($query instanceof \Zend\Cloud\DocumentService\Adapter\WindowsAzure\Query) { $entities = $this->_storageClient->retrieveEntities($query->assemble()); } else { $entities = $this->_storageClient->retrieveEntities($collectionName, $query); } $documentClass = $this->getDocumentClass(); $resultSet = array(); foreach ($entities as $entity) { $resultSet[] = new $documentClass($this->_resolveAttributes($entity), array($entity->getPartitionKey(), $entity->getRowKey())); } } catch (WindowsAzureException\ExceptionInterface $e) { throw new Exception\RuntimeException('Error on document query: ' . $e->getMessage(), $e->getCode(), $e); } $setClass = $this->getDocumentSetClass(); return new $setClass($resultSet); }