lsyh/azure-table-service-bundle

Azure TableService bundle

Installs: 21

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:symfony-bundle

v1.0.0 2025-04-07 14:31 UTC

This package is auto-updated.

Last update: 2025-04-07 14:33:22 UTC


README

Installation:

Step 1: Download the Bundle

Open a command console, enter your project directory and execute:

composer require lsyh/azure-table-service-bundle:@dev

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

// config/bundles.php

return [
    // ...
    Lsyh\TableServiceBundle\TableServiceBundle::class => ['all' => true],
];

Step 3: Create table_service.yaml in config/packages folder.

table_service:
  azure_url: '%env(AZURE_URL)%'
  azure_table_name: '%env(AZURE_TABLE_NAME)%'
  azure_sas_token: '%env(AZURE_SAS_TOKEN)%'

Usage:

Dependency Injection:

class AzureTestCommand extends Command
{
    public function __construct(
        private TableService $tableService,
    ) {
        parent::__construct();
    }

Create table:

   $azureApiResponse = $this->tableService->createTable('myTable');

Get table:

   $azureApiResponse = $this->tableService->getTable('myTable');

Delete table:

   $azureApiResponse = $this->tableService->deleteTable('myTable');

Insert Entity:

    $entity = (new Entity())
                    ->setPartitionKey('partkey1')
              ->setRowKey('rowkey1')
              ->addProperty('name', 'John Doe')
              ->addProperty('age', 30)
              ->addProperty('isStudent', true)
              ->addProperty('created', new \DateTime());

   $azureApiResponse = $this->tableService->insertEntity('myTable', $entity);

Update Entity:

    $entity = (new Entity())
                    ->setPartitionKey('partkey1')
              ->setRowKey('rowkey1')
              ->addProperty('name', 'John Doe')
              ->addProperty('age', 30)
              ->addProperty('isStudent', true)
              ->addProperty('created', new \DateTime())
              ->addProperty('binaryTest', 'SomeBinaryData', EdmType::BINARY);

   $azureApiResponse = $this->tableService->updateEntity('myTable', $entity);

Delete Entity:

   $azureApiResponse = $this->tableService->delelteEntity('myTable', 'partkey1', 'rowkey1');

Get Entity:

   $azureApiResponse = $this->tableService->getEntity('myTable', 'partkey1', 'rowkey1');

   $azureApiResponse->getEntity();

Get Entity, select properties response:

   $azureApiResponse = $this->tableService->getEntity('myTable', 'partkey1', 'rowkey1', 'name', 'age');

Filter Entity by timestamp

$azureApiResponse = $this->tableService->getEntityByFilter('myTable', 'and', 'Timestamp le datetime\'' . $date . '\'');