Community-driven PHP SDKs for Azure, because Microsoft won't.
In November 2023, Microsoft officially archived their Azure SDK for PHP and stopped maintaining PHP integrations for most Azure services. No migration path, no replacement — just a repository marked read-only.
We picked up where they left off.
- azure-oss/storage — Meta package for the Storage SDKs
- azure-oss/storage-common — Shared authentication, HTTP, and SAS primitives
- azure-oss/storage-blob — Blob Storage SDK
- azure-oss/storage-blob-flysystem — Flysystem adapter
- azure-oss/storage-blob-laravel — Laravel filesystem driver
- azure-oss/storage-blob-symfony — Symfony Flysystem bridge
- azure-oss/storage-queue — Queue Storage SDK
- azure-oss/storage-queue-laravel — Laravel queue connector
- azure-oss/storage-file-share — File Share SDK (under construction)
- azure-oss/identity — Microsoft Entra ID token authentication
composer require azure-oss/storage-blob-flysystemYou can read the documentation here.
<?php
use AzureOss\Storage\Blob\BlobServiceClient;
use AzureOss\Storage\BlobFlysystem\AzureBlobStorageAdapter;
use League\Flysystem\Filesystem;
$service = BlobServiceClient::fromConnectionString(
getenv('AZURE_STORAGE_CONNECTION_STRING')
);
$container = $service->getContainerClient(
getenv('AZURE_STORAGE_CONTAINER')
);
$adapter = new AzureBlobStorageAdapter($container);
$filesystem = new Filesystem($adapter);
// Write
$filesystem->write('docs/hello.txt', 'Hello Azure Blob + Flysystem');
// Read
$contents = $filesystem->read('docs/hello.txt');
// Stream upload
$stream = fopen('/path/to/big-file.zip', 'r');
$filesystem->writeStream('archives/big-file.zip', $stream);
fclose($stream);
// List recursively
foreach ($filesystem->listContents('docs', true) as $item) {
echo $item->path().PHP_EOL;
}
// Delete
$filesystem->delete('docs/hello.txt');This project is released under the MIT License. See LICENSE for details.