From c714933ad23aa72027532b3aa7457c6668b4c42b Mon Sep 17 00:00:00 2001 From: Claudear <262350598+claudear@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:02:09 +0000 Subject: [PATCH] Update appwrite/appwrite SDK to ^27.0.0 Bumps the Appwrite PHP SDK from ^12.0.0 to ^27.0.0 to keep the playground current with upstream (appwrite/appwrite#12895). The v27 SDK hydrates API responses into typed readonly Model objects instead of associative arrays, so the playground now reads returned IDs via property access (`$response->id`) rather than array access (`$response['$id']`). The SDK also requires PHP >=8.2, so the composer constraint and the Dockerfile base image are updated accordingly. Co-Authored-By: Claude Opus 4.8 --- Dockerfile | 2 +- composer.json | 4 ++-- playground.php | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 700aa6d..5da2af7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ COPY composer.lock composer.lock RUN composer install --no-dev --no-interaction --no-progress --no-scripts --optimize-autoloader -FROM php:8.1.11-alpine3.16 +FROM php:8.3-alpine COPY --from=composer /app/vendor /app/vendor COPY global.inc.php /app/global.inc.php diff --git a/composer.json b/composer.json index 060e8c4..6faa282 100644 --- a/composer.json +++ b/composer.json @@ -23,9 +23,9 @@ } ], "require": { - "php": ">=8.0", + "php": ">=8.2", "ext-curl": "*", - "appwrite/appwrite": "^12.0.0" + "appwrite/appwrite": "^27.0.0" }, "config": { "optimize-autoloader": true, diff --git a/playground.php b/playground.php index c1e7283..8c1d1d3 100644 --- a/playground.php +++ b/playground.php @@ -61,7 +61,7 @@ function createDatabase(): array name: "Test Database" ); - $databaseId = $response['$id']; + $databaseId = $response->id; return [ 'call' => 'api.createDatabase', @@ -91,7 +91,7 @@ function createCollection(): array ] ); - $collectionId = $response['$id']; + $collectionId = $response->id; $response1 = $databases->createStringAttribute( $databaseId, @@ -230,7 +230,7 @@ function createBucket(): array fileSecurity: true, ); - $bucketId = $response['$id']; + $bucketId = $response->id; return [ 'call' => 'api.createBucket', @@ -260,7 +260,7 @@ function createFile(): array ] ); - $fileId = $response['$id']; + $fileId = $response->id; return [ 'call' => 'api.createFile', @@ -408,7 +408,7 @@ functionId: ID::unique(), execute: [Role::any()], ); - $functionId = $response['$id']; + $functionId = $response->id; return [ 'call' => 'api.createFunction', @@ -490,7 +490,7 @@ functionId: $functionId, // wait for 2 seconds to ensure execution is finished sleep(2); - $asyncResponse = $functions->getExecution($functionId, $response['$id']); + $asyncResponse = $functions->getExecution($functionId, $response->id); return [ 'call' => 'api.createExecution',