Skip to content

Laravel 13 compatibility#33

Draft
thekevinm wants to merge 1 commit intomasterfrom
shift/laravel-13
Draft

Laravel 13 compatibility#33
thekevinm wants to merge 1 commit intomasterfrom
shift/laravel-13

Conversation

@thekevinm
Copy link
Copy Markdown
Contributor

Summary

Composer-only bump to Laravel 13.7. df-azure has zero L13-blocking source patterns (no DispatchesJobs, no CorsService, no getDates overrides, no setUpBeforeClass typos, no Illuminate\Database\Connection extensions) — its only Illuminate import is Support\Arr, which is stable across L11 -> L13.

Changes

composer.json:

  • require: add php ^8.3, laravel/helpers ^1.8 (polyfills array_get/camel_case/array_except for in-source legacy call sites in dependent packages).
  • require-dev: add full L13 toolchain — laravel/framework ^13.7, phpunit/phpunit ^11.5.3, orchestra/testbench ^11.0, mockery/mockery ^1.6, nunomaduro/collision ^8.6.
  • version: pin top-level to 0.19.99 so Stage 1 can resolve the structural circular constraint chain (df-database ~1.4df-file ~0.8df-azure ~0.19) when sibling shift/laravel-13 branches are wired in via path repos.

Microsoft Azure SDK pins (unchanged)

  • microsoft/azure-storage-common ~1.5.2
  • microsoft/azure-storage-blob ~1.5.4
  • microsoft/azure-storage-table ~1.1.6
  • dreamfactory/azure-documentdb-php-sdk ~0.2.0

These SDKs are abandoned upstream (latest releases Sep 2022) but install cleanly under PHP 8.3 — their constraint is php >=5.6.0, no Laravel coupling. No newer L13/PHP-8.3-aware fork exists; if Microsoft ever ships a successor (e.g. microsoft/microsoft-azure-storage-blob), that's a separate migration outside the L13 upgrade scope.

Source changes

None.

Test plan

  • Stage 1 (isolated, sibling shift/laravel-13 path-repos): composer install resolves; all 14 namespaced classes (ServiceProvider, Services\{Blob,Table,DocumentDB}, Resources\{Table,DocumentDbTable}, Models\{AzureConfig,TableConfig,DocumentDbConfig,BlobConfig}, Components\{AzureBlobFileSystem,DocumentDBConnection}, Database\Schema\{AzureTableSchema,DocumentDbSchema}) autoload; helper polyfills active; Application::VERSION = 13.7.0; lint-clean across all src/*.php.
  • Stage 2 (host-app shift-173254): df-azure participates in package discovery, all 14 classes + Azure SDK BlobRestProxy / TableRestProxy resolve under bootstrapped L13.7 app.
  • Live end-to-end blob/table/cosmos calls deferred to integration env (require live Azure creds).

Notes

Pre-existing latent bug observed but not addressed (out of scope for L13 upgrade): src/Components/AzureBlobFileSystem.php and src/Resources/Table.php import MicrosoftAzure\Storage\Common\ServiceException, but the SDK's actual class is MicrosoftAzure\Storage\Common\Exceptions\ServiceException. The instanceof and catch clauses against this aliased class never fire. Identical behavior on master (predates L13). File a follow-up issue.

Part of the Laravel 11 -> 13 upgrade campaign (Wave 4).

Bump composer.json for Laravel 13.7 toolchain. No source changes
required — df-azure's only Illuminate import is Support\Arr (stable
across L11 -> L13), and tests inherit from df-core / df-database /
df-file TestCase bases (already on shift/laravel-13).

require:
  - php ^8.3
  - laravel/helpers ^1.8 (polyfills array_get/camel_case/array_except)

require-dev:
  - laravel/framework ^13.7
  - phpunit/phpunit ^11.5.3
  - orchestra/testbench ^11.0
  - mockery/mockery ^1.6
  - nunomaduro/collision ^8.6

Top-level "version": "0.19.99" pin satisfies the circular-dep
constraint chain (df-database ~1.4 -> df-file ~0.8 -> df-azure ~0.19)
during Stage 1 isolated install with sibling shift/laravel-13
path-repos.

Microsoft Azure SDK pins (azure-storage-{common,blob,table},
azure-documentdb-php-sdk) unchanged. SDKs are abandoned upstream
but install cleanly under PHP 8.3 (php >=5.6.0 constraint).

Validated:
  - Stage 1 (isolated): composer install resolves, all 14 namespaced
    classes autoload, helper polyfills active, Laravel 13.7.0
  - Stage 2 (host-app shift-173254): df-azure registers via package
    discovery, all 14 classes + Azure SDK BlobRestProxy/TableRestProxy
    resolve under bootstrapped L13.7 app
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant