Freigeben über


Verwenden des Azure Table Storage-Diensts oder von Azure Cosmos DB for Table mit PHP

GILT FÜR: Tabelle

Warnung

Dieses Projekt befindet sich in der Community-Supportphase seines Lebenszyklus. Schließlich werden alle zugehörigen Clientbibliotheken dauerhaft eingestellt. Weitere Informationen zur Ausmusterung und Alternativen zur Verwendung dieses Projekts finden Sie unter Einstellungshinweis: Php-Clientbibliotheken für Azure Storage.

Tipp

Der Inhalt in diesem Artikel gilt für Azure Table Storage und Azure Cosmos DB for Table. Die API für Table ist ein Premium-Angebot für Tabellenspeicher, das durchsatzoptimierte Tabellen, globale Verteilung und automatische sekundäre Indizes bietet.

In diesem Artikel erfahren Sie, wie Sie Tabellen erstellen, Daten speichern und CRUD-Vorgänge für die Daten ausführen. Wählen Sie entweder den Azure Table-Dienst oder Azure Cosmos DB for Table aus. Die Beispiele sind in PHP geschrieben und greifen auf die Azure Table Storage-Clientbibliothek für PHP zurück. Die besprochenen Szenarien umfassen das Erstellen und Löschen einer Tabelle sowie das Einfügen, Löschen und Abfragen von Entitäten in einer Tabelle.

Erstellen eines Azure-Dienstkontos

Sie können im Azure-Tabellenspeicher oder in Azure Cosmos DB mit Tabellen arbeiten. Weitere Informationen zu den Unterschieden zwischen Tabellenangeboten dieser beiden Dienste finden Sie in der Übersicht zur API für Table. Sie müssen ein Konto für den Dienst erstellen, den Sie verwenden möchten. In den folgenden Abschnitten wird gezeigt, wie Sie sowohl den Azure-Tabellenspeicher als auch das Azure Cosmos DB-Konto erstellen können. Sie können jedoch auch nur eines von beiden verwenden.

Azure Table Storage

Ein Azure-Speicherkonto erstellen Sie am einfachsten im Azure-Portal. Weitere Informationen finden Sie unter Erstellen von Speicherkonten.

Sie können ein Azure-Speicherkonto auch mit Azure PowerShell oder mit der Azure CLI erstellen.

Wenn Sie zu diesem Zeitpunkt kein Speicherkonto erstellen möchten, können Sie auch den Azure-Speicheremulator zum Ausführen und Testen Ihres Codes in einer lokalen Umgebung verwenden. Weitere Informationen finden Sie unter Verwenden des Azure-Speicheremulators für Entwicklung und Tests.

Azure Cosmos DB for Table

Anweisungen zum Erstellen eines Kontos für Azure Cosmos DB for Table finden Sie unter Erstellen eines Datenbankkontos.

Erstellen einer PHP-Anwendung

Die einzige Voraussetzung für das Erstellen einer PHP-Anwendung für den Zugriff auf den Table Storage-Dienst oder Azure Cosmos DB for Table sind Verweise auf Klassen im Azure Table Storage SDK für PHP innerhalb Ihres Codes. Sie können die Anwendung mit beliebigen Entwicklungstools erstellen, unter anderem auch mit Notepad.

In diesem Leitfaden verwenden Sie Azure Table Storage- oder Azure Cosmos DB for Table-Features, die innerhalb einer PHP-Anwendung aufgerufen werden können. Die Anwendung kann lokal oder in Code ausgeführt werden, der innerhalb einer Azure-Webrolle, -Workerrolle oder -Website ausgeführt wird.

Abrufen der Clientbibliothek

  1. Erstellen Sie im Stammverzeichnis Ihres Projekts eine Datei namens „composer.json“, und fügen Sie in dieser den folgenden Code ein:

    {
    "require": {
     "microsoft/azure-storage-table": "*"
    }
    }
    
  2. Laden Sie composer.phar in das Stammverzeichnis herunter.

  3. Öffnen Sie eine Eingabeaufforderung, und führen Sie im Stammverzeichnis Ihrer Projekts folgenden Befehl aus:

    php composer.phar install
    

    Navigieren Sie alternativ zur Azure Table Storage-Clientbibliothek für PHP auf GitHub, um den Quellcode zu klonen.

Hinzufügen der erforderlichen Verweise

Um den Table Storage-Dienst oder die Azure Cosmos DB-APIs verwenden zu können, müssen Sie die folgenden Aktionen ausführen:

  • Verweisen Sie mithilfe der require_once-Anweisung auf die Autoloaderdatei.
  • Verweisen Sie auf alle Klassen, die Sie verwenden.

Das folgende Beispiel zeigt, wie die Autoloaderdatei eingeschlossen und die TableRestProxy-Klasse referenziert wird.

require_once 'vendor/autoload.php';
use MicrosoftAzure\Storage\Table\TableRestProxy;

In den Beispielen hier wird immer die require_once -Anweisung angezeigt, aber es wird nur auf die Klassen verwiesen, die für die Ausführung des Beispiels erforderlich sind.

Hinzufügen der Verbindungszeichenfolge

Sie können entweder eine Verbindung mit dem Azure Storage-Konto oder dem Konto für Azure Cosmos DB for Table herstellen. Rufen Sie die Verbindungszeichenfolge basierend auf dem Typ des verwendeten Kontos ab.

Hinzufügen einer Table Storage-Dienstverbindung

Um einen Table Storage-Dienstclient zu instanziieren, benötigen Sie zunächst eine gültige Verbindungszeichenfolge. Das Format der Verbindungszeichenfolge für den Table Storage-Dienst lautet:

$connectionString = "DefaultEndpointsProtocol=[http|https];AccountName=[yourAccount];AccountKey=[yourKey]"

Hinzufügen einer Speicheremulatorverbindung

So greifen Sie auf den Storage-Emulator zu

UseDevelopmentStorage = true

Hinzufügen einer Azure Cosmos DB-Verbindung

Um einen Azure Cosmos DB-Tabellenclient zu instanziieren, benötigen Sie zunächst eine gültige Verbindungszeichenfolge. Das Format der Verbindungszeichenfolge für Azure Cosmos DB lautet:

$connectionString = "DefaultEndpointsProtocol=[https];AccountName=[myaccount];AccountKey=[myaccountkey];TableEndpoint=[https://myendpoint/]";

Um einen Azure Table Storage-Dienstclient oder einen Azure Cosmos DB-Client zu erstellen, müssen Sie die TableRestProxy-Klasse verwenden. Ihre Möglichkeiten:

  • die Verbindungszeichenfolge direkt an die Klasse weitergeben oder
  • den CloudConfigurationManager (CCM) verwenden, um mehrere externe Quellen für die Verbindungszeichenfolge zu überprüfen:
    • Standardmäßig verfügt sie über Unterstützung für eine externe Quelle – Umgebungsvariablen.
    • Sie können neue Quellen durch Erweitern der ConnectionStringSource-Klasse hinzufügen.

Für die hier erläuterten Beispiele wird die Verbindungszeichenfolge direkt weitergegeben.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;

$tableClient = TableRestProxy::createTableService($connectionString);

Erstellen einer Tabelle

Mithilfe eines TableRestProxy-Objekts können Sie eine Tabelle mit der createTable-Methode erstellen. Wenn Sie eine Tabelle erstellen, können Sie das Timeout für den Tabellenspeicherdienst festlegen. Weitere Informationen zum Tabellendiensttimeout finden Sie unter Festlegen von Timeouts für Tabellendienstvorgänge.

require_once 'vendor\autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;

// Create Table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

try    {
    // Create table.
    $tableClient->createTable("mytable");
}
catch(ServiceException $e){
    $code = $e->getCode();
    $error_message = $e->getMessage();
    // Handle exception based on error codes and messages.
    // Error codes and messages can be found here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
}

Informationen zu Einschränkungen für Tabellennamen finden Sie unter Grundlegendes zum Tabellenspeicherdienst-Datenmodell.

Hinzufügen einer Entität zu einer Tabelle

Um einer Tabelle eine Entität hinzuzufügen, erstellen Sie ein neues Entity-Objekt und übergeben Sie es an TableRestProxy->insertEntity. Wenn Sie eine Entität erstellen, müssen Sie und PartitionKeyRowKeyangeben. Diese Entitäten sind die eindeutigen Bezeichner für eine Entität und werte, die schneller abgefragt werden können als andere Entitätseigenschaften. Das System verwendet PartitionKey, um die Entitäten der Tabelle automatisch über viele Speicherknoten zu verteilen. Entitäten mit dem gleichen PartitionKey werden auf dem gleichen Knoten gespeichert. Vorgänge für mehrere Entitäten, die auf demselben Knoten gespeichert sind, funktionieren besser als für Entitäten, die auf verschiedenen Knoten gespeichert sind. Der RowKey ist die eindeutige ID einer Entität innerhalb einer Partition.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;
use MicrosoftAzure\Storage\Table\Models\Entity;
use MicrosoftAzure\Storage\Table\Models\EdmType;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

$entity = new Entity();
$entity->setPartitionKey("tasksSeattle");
$entity->setRowKey("1");
$entity->addProperty("Description", null, "Take out the trash.");
$entity->addProperty("DueDate",
                        EdmType::DATETIME,
                        new DateTime("2012-11-05T08:15:00-08:00"));
$entity->addProperty("Location", EdmType::STRING, "Home");

try{
    $tableClient->insertEntity("mytable", $entity);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
}

Informationen zu Tabelleneigenschaften und -typen finden Sie unter Grundlegendes zum Tabellendienst-Datenmodell.

Die TableRestProxy-Klasse bietet zwei alternative Methoden zum Einfügen von Entitäten: insertOrMergeEntity und insertOrReplaceEntity. Um diese Methoden zu verwenden, erstellen Sie ein neues Entity -Objekt, und übergeben Sie es als Parameter an eine Methode. Jede Methode fügt die Entität ein, wenn sie nicht vorhanden ist. Wenn die Entität bereits vorhanden ist, aktualisiert insertOrMergeEntity Eigenschaftswerte, wenn die Eigenschaften bereits vorhanden sind, und fügt neue Eigenschaften hinzu, wenn sie nicht vorhanden sind, während insertOrReplaceEntity eine vorhandene Entität vollständig ersetzt. Das folgende Beispiel veranschaulicht die Verwendung von insertOrMergeEntity. Wenn die Entität mit PartitionKey "tasksSeattle" und RowKey "1" noch nicht vorhanden ist, wird diese Entität eingefügt. Wenn sie jedoch bereits vorhanden ist (wie im vorherigen Beispiel gezeigt), wird die DueDate -Eigenschaft aktualisiert, und die Status -Eigenschaft wird hinzugefügt. Auch die Eigenschaften Description und Location werden aktualisiert, allerdings mit Werten, mit denen sie effektiv unverändert bleiben. Wenn diese beiden letztgenannten Eigenschaften nicht wie im Beispiel gezeigt hinzugefügt würden, sondern in der Zielentität vorhanden wären, bleiben ihre vorhandenen Werte unverändert.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;
use MicrosoftAzure\Storage\Table\Models\Entity;
use MicrosoftAzure\Storage\Table\Models\EdmType;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

//Create new entity.
$entity = new Entity();

// PartitionKey and RowKey are required.
$entity->setPartitionKey("tasksSeattle");
$entity->setRowKey("1");

// If entity exists, existing properties are updated with new values and
// new properties are added. Missing properties are unchanged.
$entity->addProperty("Description", null, "Take out the trash.");
$entity->addProperty("DueDate", EdmType::DATETIME, new DateTime()); // Modified the DueDate field.
$entity->addProperty("Location", EdmType::STRING, "Home");
$entity->addProperty("Status", EdmType::STRING, "Complete"); // Added Status field.

try    {
    // Calling insertOrReplaceEntity, instead of insertOrMergeEntity as shown,
    // would simply replace the entity with PartitionKey "tasksSeattle" and RowKey "1".
    $tableClient->insertOrMergeEntity("mytable", $entity);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

Abrufen einer einzelnen Entität

Mit der TableRestProxy->getEntity-Methode können Sie eine einzelne Entität durch Abfragen der Werte fürPartitionKey und RowKey abrufen. In diesem Beispiel werden der Partitionsschlüssel tasksSeattle und der Zeilenschlüssel 1 an die getEntity-Methode übergeben.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

try    {
    $result = $tableClient->getEntity("mytable", "tasksSeattle", 1);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

$entity = $result->getEntity();

echo $entity->getPartitionKey().":".$entity->getRowKey();

Abrufen aller Entitäten einer Partition

Entitätsabfragen werden mithilfe von Filtern erstellt. Weitere Informationen finden Sie unter Abfragen von Tabellen und Entitäten. Um alle Entitäten in der Partition abzurufen, verwenden Sie den Filter PartitionKey eq partition_name. Das folgende Beispiel zeigt, wie alle Entitäten in der Partition tasksSeattle durch Übergeben eines Filters an die queryEntities -Methode abgerufen werden.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

$filter = "PartitionKey eq 'tasksSeattle'";

try    {
    $result = $tableClient->queryEntities("mytable", $filter);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

$entities = $result->getEntities();

foreach($entities as $entity){
    echo $entity->getPartitionKey().":".$entity->getRowKey()."<br />";
}

Abrufen einer Teilmenge von Entitäten in einer Partition

Das Muster, das im vorherigen Beispiel verwendet wird, kann auch verwendet werden, um eine Teilmenge der Entitäten in einer Partition abzurufen. Der von Ihnen verwendete Filter bestimmt die Teilmenge der Entitäten, die Sie abrufen. Weitere Informationen finden Sie unter Abfragen von Tabellen und Entitäten. Das folgende Beispiel zeigt, wie Sie einen Filter verwenden, um alle Entitäten mit einem bestimmten Location und einem DueDate kleiner als einem angegebenen Datum abzurufen.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

$filter = "Location eq 'Office' and DueDate lt '2012-11-5'";

try    {
    $result = $tableClient->queryEntities("mytable", $filter);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

$entities = $result->getEntities();

foreach($entities as $entity){
    echo $entity->getPartitionKey().":".$entity->getRowKey()."<br />";
}

Abrufen einer Teilmenge von Entitätseigenschaften

Eine Abfrage kann eine Teilmenge der Entitätseigenschaften abrufen. Diese Technik namens Projektionreduziert die Bandbreite und kann die Abfrageleistung, besonders für große Entitäten, verbessern. Um eine abzurufende Eigenschaft anzugeben, übergeben Sie den Namen der Eigenschaft an die Query->addSelectField -Methode. Sie können diese Methode mehrfach aufrufen, um weitere Eigenschaften hinzuzufügen. Nachdem Sie ausgeführt TableRestProxy->queryEntitieshaben, verfügen die zurückgegebenen Entitäten nur über die ausgewählten Eigenschaften. Wenn Sie eine Teilmenge der Tabellenentitäten zurückgeben möchten, verwenden Sie einen Filter, wie in den vorherigen Abfragen gezeigt.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;
use MicrosoftAzure\Storage\Table\Models\QueryEntitiesOptions;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

$options = new QueryEntitiesOptions();
$options->addSelectField("Description");

try    {
    $result = $tableClient->queryEntities("mytable", $options);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

// All entities in the table are returned, regardless of whether
// they have the Description field.
// To limit the results returned, use a filter.
$entities = $result->getEntities();

foreach($entities as $entity){
    $description = $entity->getProperty("Description")->getValue();
    echo $description."<br />";
}

Aktualisieren einer Entität

Sie können eine vorhandene Entität aktualisieren, indem Sie die Methoden Entity->setProperty und Entity->addProperty an der Entität ausführen und danach TableRestProxy->updateEntity aufrufen. Das folgende Beispiel ruft eine Entität ab, ändert eine Eigenschaft, entfernt eine andere Eigenschaft und fügt eine neue Eigenschaft hinzu. Sie können eine Eigenschaft entfernen, indem Sie ihren Wert auf NULL festlegen.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;
use MicrosoftAzure\Storage\Table\Models\Entity;
use MicrosoftAzure\Storage\Table\Models\EdmType;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

$result = $tableClient->getEntity("mytable", "tasksSeattle", 1);

$entity = $result->getEntity();
$entity->setPropertyValue("DueDate", new DateTime()); //Modified DueDate.
$entity->setPropertyValue("Location", null); //Removed Location.
$entity->addProperty("Status", EdmType::STRING, "In progress"); //Added Status.

try    {
    $tableClient->updateEntity("mytable", $entity);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

Löschen einer Entität

Um eine Entität zu löschen, übergeben Sie den Tabellennamen und die Werte für PartitionKey und RowKey der Entität an die TableRestProxy->deleteEntity-Methode.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

try    {
    // Delete entity.
    $tableClient->deleteEntity("mytable", "tasksSeattle", "2");
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

Für Parallelitätsüberprüfungen können Sie das ETag für eine zu löschende Entität mithilfe der DeleteEntityOptions->setEtag-Methode und durch Übergeben des DeleteEntityOptions-Objekts an deleteEntity als vierten Parameter festlegen.

Batch-Tabellenvorgänge

Mithilfe der TableRestProxy->batch-Methode können Sie mehrere Vorgänge in einer einzelnen Anforderung ausführen. Das Muster umfasst hier das Hinzufügen von Vorgängen zum BatchRequest-Objekt und die darauf folgende Übergabe des BatchRequest-Objekts an die TableRestProxy->batch-Methode. Um einem BatchRequest -Objekt einen Vorgang hinzuzufügen, können Sie eine der folgenden Methoden mehrfach aufrufen:

BESCHREIBUNG
addInsertEntity Fügt einen insertEntity-Vorgang hinzu.
addUpdateEntity Fügt einen updateEntity-Vorgang hinzu.
addMergeEntity Fügt einen mergeEntity-Vorgang hinzu.
addInsertOrReplaceEntity Fügt einen insertOrReplaceEntity-Vorgang hinzu.
addInsertOrMergeEntity Fügt einen insertOrMergeEntity-Vorgang hinzu.
addDeleteEntity Fügt einen deleteEntity-Vorgang hinzu.

Das folgende Beispiel zeigt die Ausführung von insertEntity- und deleteEntity-Vorgängen in einer einzelnen Anforderung.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;
use MicrosoftAzure\Storage\Table\Models\Entity;
use MicrosoftAzure\Storage\Table\Models\EdmType;
use MicrosoftAzure\Storage\Table\Models\BatchOperations;

// Configure a connection string for Storage Table service.
$connectionString = "DefaultEndpointsProtocol=[http|https];AccountName=[yourAccount];AccountKey=[yourKey]"

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

// Create list of batch operation.
$operations = new BatchOperations();

$entity1 = new Entity();
$entity1->setPartitionKey("tasksSeattle");
$entity1->setRowKey("2");
$entity1->addProperty("Description", null, "Clean roof gutters.");
$entity1->addProperty("DueDate",
                        EdmType::DATETIME,
                        new DateTime("2012-11-05T08:15:00-08:00"));
$entity1->addProperty("Location", EdmType::STRING, "Home");

// Add operation to list of batch operations.
$operations->addInsertEntity("mytable", $entity1);

// Add operation to list of batch operations.
$operations->addDeleteEntity("mytable", "tasksSeattle", "1");

try    {
    $tableClient->batch($operations);
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

Weitere Informationen zu Batch-Tabellenvorgängen finden Sie unter Durchführen von Entitätsgruppentransaktionen.

Löschen einer Tabelle

Um eine Tabelle zu löschen, übergeben Sie den Tabellennamen an die TableRestProxy->deleteTable-Methode.

require_once 'vendor/autoload.php';

use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;

// Create table REST proxy.
$tableClient = TableRestProxy::createTableService($connectionString);

try    {
    // Delete table.
    $tableClient->deleteTable("mytable");
}
catch(ServiceException $e){
    // Handle exception based on error codes and messages.
    // Error codes and messages are here:
    // https://learn.microsoft.com/rest/api/storageservices/Table-Service-Error-Codes
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}