Repository navigation
fix: bump PHP client to PHP 8.3+ and Guzzle 8 (old Guzzle has security advisories) - #12769
Merged
Merged
Conversation
Generated composer.json depended on guzzlehttp/guzzle ^6.2 and squizlabs/php_codesniffer ~2.6. Both are EOL and every release in range is blocked by Composer security advisories, which fails the PHP build. Note for users regenerating a PHP client: the generated code now requires PHP >=8.3, guzzlehttp/guzzle ^8.3 and phpcs ^3.0 (php-symfony: phpcs ^3.0 only). The codegen CLI and its options are unchanged. api.mustache: - Psr7\try_fopen -> Psr7\Utils::tryFopen - \GuzzleHttp\json_encode -> native json_encode(..., JSON_THROW_ON_ERROR) (Guzzle 8 removed it; a failure now throws \JsonException) - implicit nullable constructor params -> ?Type README/.travis.yml: PHP 8.3. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- regenerate samples/client/petstore/php, petstore-security-test/php and samples/server/petstore/php-symfony with the updated templates - port hand-written sample tests to PHPUnit\Framework\TestCase, typed setUp()/setUpBeforeClass() and expectException(); make FakeHttpClient compatible with the Guzzle 8 ClientInterface - run PHP workflows on PHP 8.3 (was 7.4) Ints/Numbers models are intentionally not added: they do not compile on PHP 8 (pre-existing generator issue, same on master). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
Credential-routing risks and unresolved runtime, serialization, and tooling incompatibilities block approval.
5 open issues
Credential injection truncates custom Git base URLs · New Boolean enum constants are incorrectly generated as strings · New PHP 8.3 incompatible with bundled PHP-CS-Fixer 2.x · New RequestException handling calls removed getResponse() method · New Array query parameters incorrectly use repeated keys instead of CSV · New
What changed in this PR
Modernizes Swagger Codegen’s PHP clients and samples for PHP 8.3 and Guzzle 8, alongside test and tooling updates.
Changes:
- Raises PHP requirements and updates dependencies and CI runtimes.
- Modernizes generated APIs, model compatibility attributes, and PHPUnit tests.
- Refreshes sample documentation, publishing scripts, and Swagger UI download paths.
| File | Description |
|---|---|
| samples/server/petstore/php-symfony/SymfonyBundle-php/composer.json | Updates PHP_CodeSniffer. |
| samples/server/petstore/php-symfony/.swagger-codegen/VERSION | Updates generation version. |
| samples/client/petstore/php/SwaggerClient-php/tests/UserApiTest.php | Modernizes PHPUnit setup. |
| samples/client/petstore/php/SwaggerClient-php/tests/StoreApiTest.php | Modernizes PHPUnit hooks. |
| samples/client/petstore/php/SwaggerClient-php/tests/ResponseTypesTest.php | Modernizes PHPUnit setup. |
| samples/client/petstore/php/SwaggerClient-php/tests/RequestTest.php | Modernizes PHPUnit setup. |
| samples/client/petstore/php/SwaggerClient-php/tests/PetTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/PetApiTest.php | Modernizes PHPUnit hooks and assertions. |
| samples/client/petstore/php/SwaggerClient-php/tests/ParametersTest.php | Modernizes PHPUnit setup. |
| samples/client/petstore/php/SwaggerClient-php/tests/OuterEnumTest.php | Updates exception expectations. |
| samples/client/petstore/php/SwaggerClient-php/tests/OrderApiTest.php | Modernizes PHPUnit hooks. |
| samples/client/petstore/php/SwaggerClient-php/tests/ObjectSerializerTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/ModelInheritanceTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/HeadersTest.php | Modernizes PHPUnit setup. |
| samples/client/petstore/php/SwaggerClient-php/tests/HeaderSelectorTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/FormatTestTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/FakeHttpClient.php | Adds interface-compatible type declarations. |
| samples/client/petstore/php/SwaggerClient-php/tests/ExceptionTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/EnumTestTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/EnumClassTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/DebugTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/DateTimeSerializerTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/AuthTest.php | Updates PHPUnit base class. |
| samples/client/petstore/php/SwaggerClient-php/tests/AsyncTest.php | Modernizes setup and exception expectations. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/UserTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/TagTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/SpecialModelNameTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ReadOnlyFirstTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/PetTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/OuterStringTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/OuterNumberTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/OuterEnumTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/OuterCompositeTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/OuterBooleanTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/OrderTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/NumberOnlyTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/NameTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ModelReturnTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ModelListTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/Model200ResponseTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/MapTestTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/HasOnlyReadOnlyTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/FormatTestTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/EnumTestTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/EnumClassTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/EnumArraysTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/DogTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ClientTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ClassModelTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/CatTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/CategoryTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/CapitalizationTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/BooleanTest.php | Adds Boolean test scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ArrayTestTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ArrayOfNumberOnlyTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/ApiResponseTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/AnimalTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/AnimalFarmTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Model/AdditionalPropertiesClassTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Api/UserApiTest.php | Refreshes generated API test scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Api/StoreApiTest.php | Refreshes generated API test scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Api/PetApiTest.php | Refreshes generated API test scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Api/FakeClassnameTags123ApiTest.php | Refreshes generated API test scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Api/FakeApiTest.php | Refreshes generated API test scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/test/Api/AnotherFakeApiTest.php | Refreshes generated API test scaffolding. |
| samples/client/petstore/php/SwaggerClient-php/README.md | Updates requirements and sample documentation. |
| samples/client/petstore/php/SwaggerClient-php/phpunit.xml.dist | Corrects coverage directory separators. |
| samples/client/petstore/php/SwaggerClient-php/lib/ObjectSerializer.php | Refreshes generated header comments. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/User.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Tag.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/SpecialModelName.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ReadOnlyFirst.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Pet.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/OuterString.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/OuterNumber.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/OuterEnum.php | Updates generator-version comment. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/OuterComposite.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/OuterBoolean.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Order.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/NumberOnly.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Name.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ModelReturn.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ModelList.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ModelInterface.php | Refreshes generated header comments. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Model200Response.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/MapTest.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/HasOnlyReadOnly.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/FormatTest.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/EnumTest.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/EnumClass.php | Updates generator-version comment. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/EnumArrays.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Dog.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Client.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ClassModel.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Category.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Cat.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Capitalization.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Boolean.php | Adds Boolean enum model. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ArrayTest.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ArrayOfNumberOnly.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/ApiResponse.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/AnimalFarm.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/Model/AdditionalPropertiesClass.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore/php/SwaggerClient-php/lib/HeaderSelector.php | Refreshes generated header comments. |
| samples/client/petstore/php/SwaggerClient-php/lib/Configuration.php | Makes default port explicit. |
| samples/client/petstore/php/SwaggerClient-php/lib/ApiException.php | Refreshes generated header comments. |
| samples/client/petstore/php/SwaggerClient-php/lib/Api/UserApi.php | Updates nullable parameters and JSON encoding. |
| samples/client/petstore/php/SwaggerClient-php/lib/Api/StoreApi.php | Updates encoding, parameters, and path placeholders. |
| samples/client/petstore/php/SwaggerClient-php/lib/Api/PetApi.php | Modernizes encoding and file opening. |
| samples/client/petstore/php/SwaggerClient-php/lib/Api/FakeClassnameTags123Api.php | Updates nullable parameters and body encoding. |
| samples/client/petstore/php/SwaggerClient-php/lib/Api/FakeApi.php | Updates body and query serialization. |
| samples/client/petstore/php/SwaggerClient-php/lib/Api/AnotherFakeApi.php | Updates nullable parameters and body encoding. |
| samples/client/petstore/php/SwaggerClient-php/git_push.sh | Adds configurable repository base URL. |
| samples/client/petstore/php/SwaggerClient-php/docs/Model/Boolean.md | Adds Boolean model documentation. |
| samples/client/petstore/php/SwaggerClient-php/docs/Api/UserApi.md | Documents explicit default port. |
| samples/client/petstore/php/SwaggerClient-php/docs/Api/StoreApi.md | Refreshes endpoint URLs and placeholders. |
| samples/client/petstore/php/SwaggerClient-php/docs/Api/PetApi.md | Documents explicit default port. |
| samples/client/petstore/php/SwaggerClient-php/composer.json | Raises PHP and dependency requirements. |
| samples/client/petstore/php/SwaggerClient-php/.travis.yml | Selects PHP 8.3. |
| samples/client/petstore/php/.swagger-codegen/VERSION | Updates generation version. |
| samples/client/petstore-security-test/php/SwaggerClient-php/test/Model/ModelReturnTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore-security-test/php/SwaggerClient-php/test/Api/FakeApiTest.php | Refreshes generated PHPUnit scaffolding. |
| samples/client/petstore-security-test/php/SwaggerClient-php/README.md | Documents PHP 8.3 requirements. |
| samples/client/petstore-security-test/php/SwaggerClient-php/lib/ObjectSerializer.php | Adds stdClass handling and strict enum checks. |
| samples/client/petstore-security-test/php/SwaggerClient-php/lib/Model/ModelReturn.php | Adds ArrayAccess compatibility attributes. |
| samples/client/petstore-security-test/php/SwaggerClient-php/lib/Model/ModelInterface.php | Updates generator-version comment. |
| samples/client/petstore-security-test/php/SwaggerClient-php/lib/HeaderSelector.php | Refreshes version comment and whitespace. |
| samples/client/petstore-security-test/php/SwaggerClient-php/lib/Configuration.php | Updates generator-version comment. |
| samples/client/petstore-security-test/php/SwaggerClient-php/lib/ApiException.php | Updates generator-version comment. |
| samples/client/petstore-security-test/php/SwaggerClient-php/lib/Api/FakeApi.php | Updates nullable parameters and body encoding. |
| samples/client/petstore-security-test/php/SwaggerClient-php/git_push.sh | Adds configurable repository base URL. |
| samples/client/petstore-security-test/php/SwaggerClient-php/composer.json | Raises PHP and dependency requirements. |
| samples/client/petstore-security-test/php/SwaggerClient-php/.travis.yml | Selects PHP 8.3. |
| samples/client/petstore-security-test/php/SwaggerClient-php/.php_cs | Migrates fixer configuration API and rules. |
| samples/client/petstore-security-test/php/.swagger-codegen/VERSION | Updates generation version. |
| modules/swagger-generator/pom.xml | Uses Swagger UI’s main archive. |
| modules/swagger-codegen/src/main/resources/php/README.mustache | Documents PHP 8.3 requirements. |
| modules/swagger-codegen/src/main/resources/php/composer.mustache | Raises generated dependency requirements. |
| modules/swagger-codegen/src/main/resources/php/api.mustache | Modernizes generated parameters and Guzzle usage. |
| modules/swagger-codegen/src/main/resources/php/.travis.yml | Generates PHP 8.3 CI configuration. |
| modules/swagger-codegen/src/main/resources/php-symfony/composer.mustache | Updates generated PHP_CodeSniffer requirement. |
| .github/workflows/test-generation-v2.yml | Runs with PHP 8.3. |
| .github/workflows/test-framework-v3-php.yml | Runs with PHP 8.3. |
| .github/workflows/test-framework-v2-php.yml | Runs with PHP 8.3. |
| .github/workflows/test-framework-php.yml | Runs with PHP 8.3. |
Review effort: Balanced
Guzzle 8 moved getResponse() from RequestException to ResponseException and ConnectException no longer extends RequestException. The generated sync and async handlers called getResponse() unconditionally, so connection errors escaped as raw Guzzle exceptions or as an undefined-method Error. Catch ResponseException (error responses) and TransferException (anything without a response, e.g. connection errors) and wrap both in ApiException.
PHP-CS-Fixer 2.x does not run on PHP 8.3 and 3.x resolves to a fixer without PHP 8.3 support when combined with PHPUnit 8.5 (sebastian/diff conflict). - generated composer.json: phpunit ^9.6, php-cs-fixer ^3.0 - rename the generated fixer config .php_cs -> .php-cs-fixer.php (required by fixer 3), use the PHP 8.3 compatible (new Config()) form and allow the risky rules it already enabled - PhpClientCodegen: supporting file name follows the rename - regenerate PHP client samples - sample tests: replace @ExpectedException* annotations and assertInternalType, both removed in PHPUnit 9
djankows
approved these changes
Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


PR checklist
./bin/to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.shand./bin/security/{LANG}-petstore.shif updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\.3.0.0branch for changes related to OpenAPI spec 3.0. Default:master.Description of the PR
This pull request upgrades the PHP client code generation and test infrastructure to require PHP 8.3 and modernizes several dependencies and code patterns. The changes ensure compatibility with the latest PHP and related tooling, update documentation, and improve generated code quality and maintainability.
PHP Version and Dependency Upgrades
Updated all workflow files (
.github/workflows/*.yml), composer manifests, and Travis CI configs to require and use PHP 8.3 instead of older versions. This includes raising the minimum required PHP version incomposer.jsonand documentation.Upgraded dependencies:
guzzlehttp/guzzleto^8.3squizlabs/php_codesnifferto^3.0phpunit/phpunitto^8.5.52friendsofphp/php-cs-fixerto~2.12Generated Code and Template Improvements
Updated generated code and templates to use nullable type hints (e.g.,
?ClientInterface $client = null) for constructor parameters, improving type safety and PHP 8.3 compatibility.Replaced deprecated or removed Guzzle functions (e.g.,
\GuzzleHttp\Psr7\try_fopen→\GuzzleHttp\Psr7\Utils::tryFopen,\GuzzleHttp\json_encode→json_encode(..., JSON_THROW_ON_ERROR)) throughout API templates and generated code for better error handling and compatibility.Documentation Updates
Tooling and Configuration Modernization
Updated
.php_csconfig to the newPhpCsFixer\Configformat and modern rules, replacing the deprecated Symfony CS config.Enhanced the
git_push.shscript to support a customizable Git repository base URL, improving automation flexibility.Version Bumps
2.4.0-SNAPSHOTto2.4.53-SNAPSHOTin generated files and version tracking.