From 017fcd17a6569418db818c82d0cb40254917a005 Mon Sep 17 00:00:00 2001 From: Jay Klehr Date: Tue, 16 Apr 2024 09:55:46 -0600 Subject: [PATCH 1/2] Preparing for PHP 8.3 --- .github/workflows/build.yml | 104 ++++++++++++++++++------------------ .phpunit.cache/test-results | 1 + composer.json | 8 +-- phpunit.xml.dist | 12 ++--- src/Zend/Json.php | 10 +--- 5 files changed, 64 insertions(+), 71 deletions(-) create mode 100644 .phpunit.cache/test-results diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e422fff..ba1d512 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,55 +1,55 @@ name: Build on: - push: - branches: - - master - pull_request: - branches: - - master + push: + branches: + - master + pull_request: + branches: + - master jobs: - build: - name: PHP ${{ matrix.php-versions }} ${{ matrix.composer-args }} - strategy: - fail-fast: false - matrix: - operating-system: [ubuntu-latest] - php-versions: ['7.4', '8.0', '8.1', '8.2'] - composer-args: ['', '--prefer-lowest'] - runs-on: ${{ matrix.operating-system }} - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Setup PHP - uses: shivammathur/setup-php@2.25.1 - with: - php-version: ${{ matrix.php-versions }} - extensions: mbstring - coverage: pcov - tools: cs2pr - - name: Setup problem matchers for PHPUnit - run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - - name: Get composer cache directory - id: composer-cache - run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - - name: Cache dependencies - uses: actions/cache@v3 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: php${{ matrix.php-versions }}-composer-${{ matrix.composer-args }}-${{ hashFiles('**/composer.json') }} - restore-keys: php${{ matrix.php-versions }}-composer-${{ matrix.composer-args }}- - - name: Install Dependencies - run: | - composer update --no-progress --no-suggest --prefer-stable --optimize-autoloader ${{ matrix.composer-args }} - - name: PHPStan - run: composer phpstan - - name: Code Style Check - env: - PHP_CS_FIXER_IGNORE_ENV: true - run: composer style-check -- --format=checkstyle | cs2pr - - name: Test - run: composer test-with-coverage - - name: Upload Coverage - uses: codecov/codecov-action@v3 - with: - files: ./clover.xml - verbose: true + build: + name: PHP ${{ matrix.php-versions }} ${{ matrix.composer-args }} + strategy: + fail-fast: false + matrix: + operating-system: [ubuntu-latest] + php-versions: ["8.0", "8.1", "8.2", "8.3"] + composer-args: ["", "--prefer-lowest"] + runs-on: ${{ matrix.operating-system }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup PHP + uses: shivammathur/setup-php@2.30.2 + with: + php-version: ${{ matrix.php-versions }} + extensions: mbstring + coverage: pcov + tools: cs2pr + - name: Setup problem matchers for PHPUnit + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: php${{ matrix.php-versions }}-composer-${{ matrix.composer-args }}-${{ hashFiles('**/composer.json') }} + restore-keys: php${{ matrix.php-versions }}-composer-${{ matrix.composer-args }}- + - name: Install Dependencies + run: | + composer update --no-progress --no-suggest --prefer-stable --optimize-autoloader ${{ matrix.composer-args }} + - name: PHPStan + run: composer phpstan + - name: Code Style Check + env: + PHP_CS_FIXER_IGNORE_ENV: true + run: composer style-check -- --format=checkstyle | cs2pr + - name: Test + run: composer test-with-coverage + - name: Upload Coverage + uses: codecov/codecov-action@v3 + with: + files: ./clover.xml + verbose: true diff --git a/.phpunit.cache/test-results b/.phpunit.cache/test-results new file mode 100644 index 0000000..b94c27b --- /dev/null +++ b/.phpunit.cache/test-results @@ -0,0 +1 @@ +{"version":1,"defects":{"Zend_JsonTest::testKommaDecimalIsConvertedToCorrectJsonWithDot":1},"times":{"Zend_Json_JsonXMLTest::testUsingXML1":0.003,"Zend_Json_JsonXMLTest::testUsingXML2":0,"Zend_Json_JsonXMLTest::testUsingXML3":0.001,"Zend_Json_JsonXMLTest::testUsingXML4":0.001,"Zend_Json_JsonXMLTest::testUsingXML5":0.001,"Zend_Json_JsonXMLTest::testUsingXML6":0,"Zend_Json_JsonXMLTest::testUsingXML7":0.001,"Zend_Json_JsonXMLTest::testUsingXML8":0,"Zend_Json_JsonXMLTest::testNestingDepthIsHandledProperlyWhenNestingDepthExceedsMaximum#0":0.001,"Zend_Json_JsonXMLTest::testNestingDepthIsHandledProperlyWhenNestingDepthDoesNotExceedMaximum#0":0,"Zend_Json_Server_CacheTest::testRetrievingSmdCacheShouldReturnFalseIfCacheDoesNotExist":0.001,"Zend_Json_Server_CacheTest::testSavingSmdCacheShouldReturnTrueOnSuccess":0,"Zend_Json_Server_CacheTest::testSavedCacheShouldMatchGeneratedCache":0,"Zend_Json_Server_CacheTest::testDeletingSmdShouldReturnFalseOnFailure":0,"Zend_Json_Server_CacheTest::testDeletingSmdShouldReturnTrueOnSuccess":0,"Zend_Json_Server_ErrorTest::testCodeShouldBeErrOtherByDefault":0.001,"Zend_Json_Server_ErrorTest::testSetCodeShouldCastToInteger":0,"Zend_Json_Server_ErrorTest::testCodeShouldBeLimitedToStandardIntegers":0,"Zend_Json_Server_ErrorTest::testCodeShouldAllowArbitraryAppErrorCodesInXmlRpcErrorCodeRange":0.001,"Zend_Json_Server_ErrorTest::testMessageShouldBeNullByDefault":0,"Zend_Json_Server_ErrorTest::testSetMessageShouldCastToString":0,"Zend_Json_Server_ErrorTest::testSetMessageToNonScalarShouldSilentlyFail":0,"Zend_Json_Server_ErrorTest::testDataShouldBeNullByDefault":0,"Zend_Json_Server_ErrorTest::testShouldAllowArbitraryData":0,"Zend_Json_Server_ErrorTest::testShouldBeAbleToCastToArray":0,"Zend_Json_Server_ErrorTest::testShouldBeAbleToCastToJson":0,"Zend_Json_Server_ErrorTest::testCastingToStringShouldCastToJson":0,"Zend_Json_Server_RequestTest::testShouldHaveNoParamsByDefault":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddAParamAsValueOnly":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddAParamAsKeyValuePair":0,"Zend_Json_Server_RequestTest::testInvalidKeysShouldBeIgnored":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddMultipleIndexedParamsAtOnce":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddMultipleNamedParamsAtOnce":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddMixedIndexedAndNamedParamsAtOnce":0,"Zend_Json_Server_RequestTest::testSetParamsShouldOverwriteParams":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToRetrieveParamByKeyOrIndex":0,"Zend_Json_Server_RequestTest::testMethodShouldBeNullByDefault":0,"Zend_Json_Server_RequestTest::testMethodErrorShouldBeFalseByDefault":0,"Zend_Json_Server_RequestTest::testMethodAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_RequestTest::testSettingMethodWithInvalidNameShouldSetError":0,"Zend_Json_Server_RequestTest::testIdShouldBeNullByDefault":0,"Zend_Json_Server_RequestTest::testIdAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_RequestTest::testVersionShouldBeJsonRpcV1ByDefault":0,"Zend_Json_Server_RequestTest::testVersionShouldBeLimitedToV1AndV2":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToLoadRequestFromJsonString":0,"Zend_Json_Server_RequestTest::testLoadingFromJsonShouldSetJsonRpcVersionWhenPresent":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToCastToJson":0,"Zend_Json_Server_RequestTest::testCastingToStringShouldCastToJson":0,"Zend_Json_Server_RequestTest::testMethodNamesShouldAllowDotNamespacing":0,"Zend_Json_Server_ResponseTest::testResultShouldBeNullByDefault":0,"Zend_Json_Server_ResponseTest::testResultAccessorsShouldWorkWithNormalInput":0,"Zend_Json_Server_ResponseTest::testResultShouldNotBeErrorByDefault":0,"Zend_Json_Server_ResponseTest::testSettingErrorShouldMarkRequestAsError":0,"Zend_Json_Server_ResponseTest::testShouldBeAbleToRetrieveErrorObject":0,"Zend_Json_Server_ResponseTest::testIdShouldBeNullByDefault":0,"Zend_Json_Server_ResponseTest::testIdAccesorsShouldWorkWithNormalInput":0,"Zend_Json_Server_ResponseTest::testVersionShouldBeNullByDefault":0,"Zend_Json_Server_ResponseTest::testVersionShouldBeLimitedToV2":0,"Zend_Json_Server_ResponseTest::testResponseShouldBeAbleToCastToJson":0,"Zend_Json_Server_ResponseTest::testResponseShouldCastErrorToJsonIfIsError":0,"Zend_Json_Server_ResponseTest::testCastToStringShouldCastToJson":0,"Zend_Json_Server_Smd_ServiceTest::testConstructorShouldThrowExceptionWhenNoNameSet":0,"Zend_Json_Server_Smd_ServiceTest::testSettingNameShouldThrowExceptionWhenContainingInvalidFormat":0,"Zend_Json_Server_Smd_ServiceTest::testNameAccessorsShouldWorkWithNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testTransportShouldDefaultToPost":0,"Zend_Json_Server_Smd_ServiceTest::testTransportShouldBeLimitedToPost":0,"Zend_Json_Server_Smd_ServiceTest::testTransportAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testTargetShouldBeNullInitially":0,"Zend_Json_Server_Smd_ServiceTest::testTargetAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testTargetAccessorsShouldNormalizeToString":0,"Zend_Json_Server_Smd_ServiceTest::testEnvelopeShouldBeJsonRpc1CompliantByDefault":0,"Zend_Json_Server_Smd_ServiceTest::testEnvelopeShouldOnlyComplyWithJsonRpc1And2":0,"Zend_Json_Server_Smd_ServiceTest::testShouldHaveNoParamsByDefault":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToAddParamsByTypeOnly":0,"Zend_Json_Server_Smd_ServiceTest::testParamsShouldAcceptArrayOfTypes":0,"Zend_Json_Server_Smd_ServiceTest::testInvalidParamTypeShouldThrowException":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToOrderParams":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToAddArbitraryParamOptions":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToAddMultipleParamsAtOnce":0,"Zend_Json_Server_Smd_ServiceTest::testSetparamsShouldOverwriteExistingParams":0,"Zend_Json_Server_Smd_ServiceTest::testReturnShouldBeNullByDefault":0,"Zend_Json_Server_Smd_ServiceTest::testReturnAccessorsShouldWorkWithNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testReturnAccessorsShouldAllowArrayOfTypes":0,"Zend_Json_Server_Smd_ServiceTest::testInvalidReturnTypeShouldThrowException":0,"Zend_Json_Server_Smd_ServiceTest::testToArrayShouldCreateSmdCompatibleHash":0,"Zend_Json_Server_Smd_ServiceTest::testTojsonShouldEmitJson":0,"Zend_Json_Server_SmdTest::testTransportShouldDefaultToPost":0,"Zend_Json_Server_SmdTest::testTransportAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testTransportShouldBeLimitedToPost":0,"Zend_Json_Server_SmdTest::testEnvelopeShouldDefaultToJsonRpcVersion1":0,"Zend_Json_Server_SmdTest::testEnvelopeAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testEnvelopeShouldBeLimitedToJsonRpcVersions":0,"Zend_Json_Server_SmdTest::testContentTypeShouldDefaultToApplicationJson":0,"Zend_Json_Server_SmdTest::testContentTypeAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testContentTypeShouldBeLimitedToMimeFormatStrings":0,"Zend_Json_Server_SmdTest::testTargetShouldDefaultToNull":0,"Zend_Json_Server_SmdTest::testTargetAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testIdShouldDefaultToNull":0,"Zend_Json_Server_SmdTest::testIdAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testDescriptionShouldDefaultToNull":0,"Zend_Json_Server_SmdTest::testDescriptionAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testDojoCompatibilityShouldBeDisabledByDefault":0,"Zend_Json_Server_SmdTest::testDojoCompatibilityFlagShouldBeMutable":0,"Zend_Json_Server_SmdTest::testServicesShouldBeEmptyByDefault":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToUseServiceObjectToAddService":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToUseArrayToAddService":0,"Zend_Json_Server_SmdTest::testAddingServiceWithExistingServiceNameShouldThrowException":0,"Zend_Json_Server_SmdTest::testAttemptingToRegisterInvalidServiceShouldThrowException":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToAddManyServicesAtOnceWithArrayOfServiceObjects":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToAddManyServicesAtOnceWithArrayOfArrays":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToAddManyServicesAtOnceWithMixedArrayOfObjectsAndArrays":0,"Zend_Json_Server_SmdTest::testSetServicesShouldOverwriteExistingServices":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToRetrieveServiceByName":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToRemoveServiceByName":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToCastToArray":0.001,"Zend_Json_Server_SmdTest::testShouldBeAbleToCastToDojoArray":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToRenderAsJson":0.001,"Zend_Json_Server_SmdTest::testToStringImplementationShouldProxyToJson":0.001,"Zend_Json_ServerTest::testShouldBeAbleToBindFunctionToServer":0,"Zend_Json_ServerTest::testShouldBeAbleToBindCallback1ToServer":0,"Zend_Json_ServerTest::testShouldBeAbleToBindCallback2ToServer":0,"Zend_Json_ServerTest::testShouldBeAbleToBindClassToServer":0,"Zend_Json_ServerTest::testBindingClassToServerShouldRegisterAllPublicMethods":0.001,"Zend_Json_ServerTest::testShouldBeAbleToBindObjectToServer":0,"Zend_Json_ServerTest::testBindingObjectToServerShouldRegisterAllPublicMethods":0.001,"Zend_Json_ServerTest::testShouldBeAbleToBindMultipleClassesAndObjectsToServer":0,"Zend_Json_ServerTest::testNamingCollisionsShouldResolveToLastRegisteredMethod":0,"Zend_Json_ServerTest::testGetRequestShouldInstantiateRequestObjectByDefault":0,"Zend_Json_ServerTest::testShouldAllowSettingRequestObjectManually":0,"Zend_Json_ServerTest::testGetResponseShouldInstantiateResponseObjectByDefault":0,"Zend_Json_ServerTest::testShouldAllowSettingResponseObjectManually":0,"Zend_Json_ServerTest::testFaultShouldCreateErrorResponse":0,"Zend_Json_ServerTest::testResponseShouldBeEmittedAutomaticallyByDefault":0,"Zend_Json_ServerTest::testShouldBeAbleToDisableAutomaticResponseEmission":0,"Zend_Json_ServerTest::testShouldBeAbleToRetrieveSmdObject":0,"Zend_Json_ServerTest::testShouldBeAbleToSetArbitrarySmdMetadata":0,"Zend_Json_ServerTest::testSmdObjectRetrievedFromServerShouldReflectServerState":0,"Zend_Json_ServerTest::testHandleValidMethodShouldWork":0,"Zend_Json_ServerTest::testHandleValidMethodWithTooFewParamsShouldPassDefaultsOrNullsForMissingParams":0,"Zend_Json_ServerTest::testHandleValidMethodWithMissingParamsShouldThrowException":0,"Zend_Json_ServerTest::testHandleValidMethodWithTooManyParamsShouldWork":0,"Zend_Json_ServerTest::testHandleShouldAllowNamedParamsInAnyOrder1":0,"Zend_Json_ServerTest::testHandleShouldAllowNamedParamsInAnyOrder2":0,"Zend_Json_ServerTest::testHandleRequestWithErrorsShouldReturnErrorResponse":0,"Zend_Json_ServerTest::testHandleRequestWithInvalidMethodShouldReturnErrorResponse":0,"Zend_Json_ServerTest::testHandleRequestWithExceptionShouldReturnErrorResponse":0,"Zend_Json_ServerTest::testHandleShouldEmitResponseByDefault":0,"Zend_Json_ServerTest::testResponseShouldBeEmptyWhenRequestHasNoId":0,"Zend_Json_ServerTest::testLoadFunctionsShouldLoadResultOfGetFunctions":0,"Zend_JsonTest::testJsonWithPhpJsonExtension":0,"Zend_JsonTest::testJsonWithBuiltins":0.001,"Zend_JsonTest::testNull":0,"Zend_JsonTest::testBoolean":0,"Zend_JsonTest::testInteger":0,"Zend_JsonTest::testJsonPrettyPrintWorksWithArrayNotationInStringLiteral":0,"Zend_JsonTest::testFloat":0,"Zend_JsonTest::testString":0,"Zend_JsonTest::testString2":0,"Zend_JsonTest::testString3":0,"Zend_JsonTest::testString4":0,"Zend_JsonTest::testString5":0,"Zend_JsonTest::testArray":0,"Zend_JsonTest::testAssocArray":0,"Zend_JsonTest::testAssocArray2":0,"Zend_JsonTest::testAssocArray3":0,"Zend_JsonTest::testObject":0,"Zend_JsonTest::testObjectAsObject":0,"Zend_JsonTest::testDecodeArrayOfObjects":0,"Zend_JsonTest::testDecodeObjectOfArrays":0,"Zend_JsonTest::testEncodeReleaseNumber":0,"Zend_JsonTest::testEarlyLineBreak":0,"Zend_JsonTest::testZf504":0,"Zend_JsonTest::testZf461":0,"Zend_JsonTest::testZf4053":0,"Zend_JsonTest::testEncodeObject":0,"Zend_JsonTest::testEncodeClass":0,"Zend_JsonTest::testEncodeClasses":0,"Zend_JsonTest::testToJsonSerialization":0,"Zend_JsonTest::testEncodingArrayWithExpr":0,"Zend_JsonTest::testEncodingObjectWithExprAndInternalEncoder":0,"Zend_JsonTest::testEncodingObjectWithExprAndExtJson":0,"Zend_JsonTest::testToJsonWithExpr":0,"Zend_JsonTest::testEncodingMultipleNestedSwitchingSameNameKeysWithDifferentJsonExprSettings":0,"Zend_JsonTest::testEncodingMultipleNestedIteratedSameNameKeysWithDifferentJsonExprSettings":0,"Zend_JsonTest::testDisabledJsonExprFinder":0,"Zend_JsonTest::testEncodeWithUtf8IsTransformedToPackedSyntax":0,"Zend_JsonTest::testEncodeWithUtf8IsTransformedSolarRegression":0,"Zend_JsonTest::testEncodeUnicodeStringSolarRegression":0,"Zend_JsonTest::testDecodeUnicodeStringSolarRegression":0,"Zend_JsonTest::testEncodeWithUtf8IsTransformedSolarRegressionEqualsJsonExt":0,"Zend_JsonTest::testUtf8JsonExprFinder":0,"Zend_JsonTest::testKommaDecimalIsConvertedToCorrectJsonWithDot":0,"Zend_JsonTest::testEncodeObjectImplementingIterator":0,"Zend_JsonTest::testEncodeObjectImplementingIteratorAggregate":0,"Zend_JsonTest::testNativeJsonEncoderWillProperlyEncodeSolidusInStringValues":0,"Zend_JsonTest::testBuiltinJsonEncoderWillProperlyEncodeSolidusInStringValues":0,"Zend_JsonTest::testDecodingInvalidJsonShouldRaiseAnException":0,"Zend_JsonTest::testIteratorWithoutDefinedKey":0,"Zend_JsonTest::testEncoderEscapesNamespacedClassNamesProperly":0,"Zend_JsonTest::testJsonPrettyPrintWorksWithTxtOutputFormat":0,"Zend_JsonTest::testJsonPrettyPrintWorksWithHtmlOutputFormat":0,"Zend_JsonTest::testEncodeWillUseToArrayMethodWhenAvailable":0,"Zend_JsonTest::testEncodeWillUseToJsonWhenBothToJsonAndToArrayMethodsAreAvailable":0,"Zend_JsonTest::testWillEncodeArrayOfObjectsEachWithToJsonMethod":0,"Zend_JsonTest::testWillDecodeStructureWithEmptyKeyToObjectProperly":0}} \ No newline at end of file diff --git a/composer.json b/composer.json index f5212d5..059f56b 100644 --- a/composer.json +++ b/composer.json @@ -10,7 +10,7 @@ "license": "BSD-3-Clause", "prefer-stable": true, "require": { - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", "diablomedia/zendframework1-exception": "^1.0.4", "diablomedia/zendframework1-xml": "^1.0.5", "diablomedia/zendframework1-server": "^1.0.2" @@ -29,9 +29,9 @@ } }, "require-dev": { - "phpunit/phpunit": "^9.5.10", - "phpstan/phpstan": "1.10.15", - "friendsofphp/php-cs-fixer": "3.16.0", + "phpunit/phpunit": "^9.6.19 || ^10.5.18", + "phpstan/phpstan": "1.10.67", + "friendsofphp/php-cs-fixer": "3.53.0", "maglnet/composer-require-checker": "^3.0.0", "phpro/grumphp-shim": "^1.5.0" }, diff --git a/phpunit.xml.dist b/phpunit.xml.dist index d55ddf3..1c7fe7e 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,13 +1,13 @@ - - - - ./src - - + ./tests + + + ./src + + diff --git a/src/Zend/Json.php b/src/Zend/Json.php index ead38db..9385f65 100644 --- a/src/Zend/Json.php +++ b/src/Zend/Json.php @@ -67,15 +67,7 @@ public static function decode($encodedValue, $objectDecodeType = Zend_Json::TYPE if (function_exists('json_decode') && self::$useBuiltinEncoderDecoder !== true) { $decode = json_decode($encodedValue, $objectDecodeType); - // php < 5.3 - if (!function_exists('json_last_error')) { - if (strtolower($encodedValue) === 'null') { - return null; - } elseif ($decode === null) { - throw new Zend_Json_Exception('Decoding failed'); - } - // php >= 5.3 - } elseif (($jsonLastErr = json_last_error()) != JSON_ERROR_NONE) { + if (($jsonLastErr = json_last_error()) != JSON_ERROR_NONE) { switch ($jsonLastErr) { case JSON_ERROR_DEPTH: throw new Zend_Json_Exception('Decoding failed: Maximum stack depth exceeded'); From 148ed0014c0a229e5c95c290cc62106ada67a4b4 Mon Sep 17 00:00:00 2001 From: Jay Klehr Date: Tue, 16 Apr 2024 09:56:47 -0600 Subject: [PATCH 2/2] ignoring cache --- .gitignore | 1 + .phpunit.cache/test-results | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .phpunit.cache/test-results diff --git a/.gitignore b/.gitignore index e5b8007..6a8821b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ .php_cs.cache .phpunit.result.cache .php-cs-fixer.cache +.phpunit.cache \ No newline at end of file diff --git a/.phpunit.cache/test-results b/.phpunit.cache/test-results deleted file mode 100644 index b94c27b..0000000 --- a/.phpunit.cache/test-results +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"defects":{"Zend_JsonTest::testKommaDecimalIsConvertedToCorrectJsonWithDot":1},"times":{"Zend_Json_JsonXMLTest::testUsingXML1":0.003,"Zend_Json_JsonXMLTest::testUsingXML2":0,"Zend_Json_JsonXMLTest::testUsingXML3":0.001,"Zend_Json_JsonXMLTest::testUsingXML4":0.001,"Zend_Json_JsonXMLTest::testUsingXML5":0.001,"Zend_Json_JsonXMLTest::testUsingXML6":0,"Zend_Json_JsonXMLTest::testUsingXML7":0.001,"Zend_Json_JsonXMLTest::testUsingXML8":0,"Zend_Json_JsonXMLTest::testNestingDepthIsHandledProperlyWhenNestingDepthExceedsMaximum#0":0.001,"Zend_Json_JsonXMLTest::testNestingDepthIsHandledProperlyWhenNestingDepthDoesNotExceedMaximum#0":0,"Zend_Json_Server_CacheTest::testRetrievingSmdCacheShouldReturnFalseIfCacheDoesNotExist":0.001,"Zend_Json_Server_CacheTest::testSavingSmdCacheShouldReturnTrueOnSuccess":0,"Zend_Json_Server_CacheTest::testSavedCacheShouldMatchGeneratedCache":0,"Zend_Json_Server_CacheTest::testDeletingSmdShouldReturnFalseOnFailure":0,"Zend_Json_Server_CacheTest::testDeletingSmdShouldReturnTrueOnSuccess":0,"Zend_Json_Server_ErrorTest::testCodeShouldBeErrOtherByDefault":0.001,"Zend_Json_Server_ErrorTest::testSetCodeShouldCastToInteger":0,"Zend_Json_Server_ErrorTest::testCodeShouldBeLimitedToStandardIntegers":0,"Zend_Json_Server_ErrorTest::testCodeShouldAllowArbitraryAppErrorCodesInXmlRpcErrorCodeRange":0.001,"Zend_Json_Server_ErrorTest::testMessageShouldBeNullByDefault":0,"Zend_Json_Server_ErrorTest::testSetMessageShouldCastToString":0,"Zend_Json_Server_ErrorTest::testSetMessageToNonScalarShouldSilentlyFail":0,"Zend_Json_Server_ErrorTest::testDataShouldBeNullByDefault":0,"Zend_Json_Server_ErrorTest::testShouldAllowArbitraryData":0,"Zend_Json_Server_ErrorTest::testShouldBeAbleToCastToArray":0,"Zend_Json_Server_ErrorTest::testShouldBeAbleToCastToJson":0,"Zend_Json_Server_ErrorTest::testCastingToStringShouldCastToJson":0,"Zend_Json_Server_RequestTest::testShouldHaveNoParamsByDefault":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddAParamAsValueOnly":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddAParamAsKeyValuePair":0,"Zend_Json_Server_RequestTest::testInvalidKeysShouldBeIgnored":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddMultipleIndexedParamsAtOnce":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddMultipleNamedParamsAtOnce":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToAddMixedIndexedAndNamedParamsAtOnce":0,"Zend_Json_Server_RequestTest::testSetParamsShouldOverwriteParams":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToRetrieveParamByKeyOrIndex":0,"Zend_Json_Server_RequestTest::testMethodShouldBeNullByDefault":0,"Zend_Json_Server_RequestTest::testMethodErrorShouldBeFalseByDefault":0,"Zend_Json_Server_RequestTest::testMethodAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_RequestTest::testSettingMethodWithInvalidNameShouldSetError":0,"Zend_Json_Server_RequestTest::testIdShouldBeNullByDefault":0,"Zend_Json_Server_RequestTest::testIdAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_RequestTest::testVersionShouldBeJsonRpcV1ByDefault":0,"Zend_Json_Server_RequestTest::testVersionShouldBeLimitedToV1AndV2":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToLoadRequestFromJsonString":0,"Zend_Json_Server_RequestTest::testLoadingFromJsonShouldSetJsonRpcVersionWhenPresent":0,"Zend_Json_Server_RequestTest::testShouldBeAbleToCastToJson":0,"Zend_Json_Server_RequestTest::testCastingToStringShouldCastToJson":0,"Zend_Json_Server_RequestTest::testMethodNamesShouldAllowDotNamespacing":0,"Zend_Json_Server_ResponseTest::testResultShouldBeNullByDefault":0,"Zend_Json_Server_ResponseTest::testResultAccessorsShouldWorkWithNormalInput":0,"Zend_Json_Server_ResponseTest::testResultShouldNotBeErrorByDefault":0,"Zend_Json_Server_ResponseTest::testSettingErrorShouldMarkRequestAsError":0,"Zend_Json_Server_ResponseTest::testShouldBeAbleToRetrieveErrorObject":0,"Zend_Json_Server_ResponseTest::testIdShouldBeNullByDefault":0,"Zend_Json_Server_ResponseTest::testIdAccesorsShouldWorkWithNormalInput":0,"Zend_Json_Server_ResponseTest::testVersionShouldBeNullByDefault":0,"Zend_Json_Server_ResponseTest::testVersionShouldBeLimitedToV2":0,"Zend_Json_Server_ResponseTest::testResponseShouldBeAbleToCastToJson":0,"Zend_Json_Server_ResponseTest::testResponseShouldCastErrorToJsonIfIsError":0,"Zend_Json_Server_ResponseTest::testCastToStringShouldCastToJson":0,"Zend_Json_Server_Smd_ServiceTest::testConstructorShouldThrowExceptionWhenNoNameSet":0,"Zend_Json_Server_Smd_ServiceTest::testSettingNameShouldThrowExceptionWhenContainingInvalidFormat":0,"Zend_Json_Server_Smd_ServiceTest::testNameAccessorsShouldWorkWithNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testTransportShouldDefaultToPost":0,"Zend_Json_Server_Smd_ServiceTest::testTransportShouldBeLimitedToPost":0,"Zend_Json_Server_Smd_ServiceTest::testTransportAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testTargetShouldBeNullInitially":0,"Zend_Json_Server_Smd_ServiceTest::testTargetAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testTargetAccessorsShouldNormalizeToString":0,"Zend_Json_Server_Smd_ServiceTest::testEnvelopeShouldBeJsonRpc1CompliantByDefault":0,"Zend_Json_Server_Smd_ServiceTest::testEnvelopeShouldOnlyComplyWithJsonRpc1And2":0,"Zend_Json_Server_Smd_ServiceTest::testShouldHaveNoParamsByDefault":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToAddParamsByTypeOnly":0,"Zend_Json_Server_Smd_ServiceTest::testParamsShouldAcceptArrayOfTypes":0,"Zend_Json_Server_Smd_ServiceTest::testInvalidParamTypeShouldThrowException":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToOrderParams":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToAddArbitraryParamOptions":0,"Zend_Json_Server_Smd_ServiceTest::testShouldBeAbleToAddMultipleParamsAtOnce":0,"Zend_Json_Server_Smd_ServiceTest::testSetparamsShouldOverwriteExistingParams":0,"Zend_Json_Server_Smd_ServiceTest::testReturnShouldBeNullByDefault":0,"Zend_Json_Server_Smd_ServiceTest::testReturnAccessorsShouldWorkWithNormalInput":0,"Zend_Json_Server_Smd_ServiceTest::testReturnAccessorsShouldAllowArrayOfTypes":0,"Zend_Json_Server_Smd_ServiceTest::testInvalidReturnTypeShouldThrowException":0,"Zend_Json_Server_Smd_ServiceTest::testToArrayShouldCreateSmdCompatibleHash":0,"Zend_Json_Server_Smd_ServiceTest::testTojsonShouldEmitJson":0,"Zend_Json_Server_SmdTest::testTransportShouldDefaultToPost":0,"Zend_Json_Server_SmdTest::testTransportAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testTransportShouldBeLimitedToPost":0,"Zend_Json_Server_SmdTest::testEnvelopeShouldDefaultToJsonRpcVersion1":0,"Zend_Json_Server_SmdTest::testEnvelopeAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testEnvelopeShouldBeLimitedToJsonRpcVersions":0,"Zend_Json_Server_SmdTest::testContentTypeShouldDefaultToApplicationJson":0,"Zend_Json_Server_SmdTest::testContentTypeAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testContentTypeShouldBeLimitedToMimeFormatStrings":0,"Zend_Json_Server_SmdTest::testTargetShouldDefaultToNull":0,"Zend_Json_Server_SmdTest::testTargetAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testIdShouldDefaultToNull":0,"Zend_Json_Server_SmdTest::testIdAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testDescriptionShouldDefaultToNull":0,"Zend_Json_Server_SmdTest::testDescriptionAccessorsShouldWorkUnderNormalInput":0,"Zend_Json_Server_SmdTest::testDojoCompatibilityShouldBeDisabledByDefault":0,"Zend_Json_Server_SmdTest::testDojoCompatibilityFlagShouldBeMutable":0,"Zend_Json_Server_SmdTest::testServicesShouldBeEmptyByDefault":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToUseServiceObjectToAddService":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToUseArrayToAddService":0,"Zend_Json_Server_SmdTest::testAddingServiceWithExistingServiceNameShouldThrowException":0,"Zend_Json_Server_SmdTest::testAttemptingToRegisterInvalidServiceShouldThrowException":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToAddManyServicesAtOnceWithArrayOfServiceObjects":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToAddManyServicesAtOnceWithArrayOfArrays":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToAddManyServicesAtOnceWithMixedArrayOfObjectsAndArrays":0,"Zend_Json_Server_SmdTest::testSetServicesShouldOverwriteExistingServices":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToRetrieveServiceByName":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToRemoveServiceByName":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToCastToArray":0.001,"Zend_Json_Server_SmdTest::testShouldBeAbleToCastToDojoArray":0,"Zend_Json_Server_SmdTest::testShouldBeAbleToRenderAsJson":0.001,"Zend_Json_Server_SmdTest::testToStringImplementationShouldProxyToJson":0.001,"Zend_Json_ServerTest::testShouldBeAbleToBindFunctionToServer":0,"Zend_Json_ServerTest::testShouldBeAbleToBindCallback1ToServer":0,"Zend_Json_ServerTest::testShouldBeAbleToBindCallback2ToServer":0,"Zend_Json_ServerTest::testShouldBeAbleToBindClassToServer":0,"Zend_Json_ServerTest::testBindingClassToServerShouldRegisterAllPublicMethods":0.001,"Zend_Json_ServerTest::testShouldBeAbleToBindObjectToServer":0,"Zend_Json_ServerTest::testBindingObjectToServerShouldRegisterAllPublicMethods":0.001,"Zend_Json_ServerTest::testShouldBeAbleToBindMultipleClassesAndObjectsToServer":0,"Zend_Json_ServerTest::testNamingCollisionsShouldResolveToLastRegisteredMethod":0,"Zend_Json_ServerTest::testGetRequestShouldInstantiateRequestObjectByDefault":0,"Zend_Json_ServerTest::testShouldAllowSettingRequestObjectManually":0,"Zend_Json_ServerTest::testGetResponseShouldInstantiateResponseObjectByDefault":0,"Zend_Json_ServerTest::testShouldAllowSettingResponseObjectManually":0,"Zend_Json_ServerTest::testFaultShouldCreateErrorResponse":0,"Zend_Json_ServerTest::testResponseShouldBeEmittedAutomaticallyByDefault":0,"Zend_Json_ServerTest::testShouldBeAbleToDisableAutomaticResponseEmission":0,"Zend_Json_ServerTest::testShouldBeAbleToRetrieveSmdObject":0,"Zend_Json_ServerTest::testShouldBeAbleToSetArbitrarySmdMetadata":0,"Zend_Json_ServerTest::testSmdObjectRetrievedFromServerShouldReflectServerState":0,"Zend_Json_ServerTest::testHandleValidMethodShouldWork":0,"Zend_Json_ServerTest::testHandleValidMethodWithTooFewParamsShouldPassDefaultsOrNullsForMissingParams":0,"Zend_Json_ServerTest::testHandleValidMethodWithMissingParamsShouldThrowException":0,"Zend_Json_ServerTest::testHandleValidMethodWithTooManyParamsShouldWork":0,"Zend_Json_ServerTest::testHandleShouldAllowNamedParamsInAnyOrder1":0,"Zend_Json_ServerTest::testHandleShouldAllowNamedParamsInAnyOrder2":0,"Zend_Json_ServerTest::testHandleRequestWithErrorsShouldReturnErrorResponse":0,"Zend_Json_ServerTest::testHandleRequestWithInvalidMethodShouldReturnErrorResponse":0,"Zend_Json_ServerTest::testHandleRequestWithExceptionShouldReturnErrorResponse":0,"Zend_Json_ServerTest::testHandleShouldEmitResponseByDefault":0,"Zend_Json_ServerTest::testResponseShouldBeEmptyWhenRequestHasNoId":0,"Zend_Json_ServerTest::testLoadFunctionsShouldLoadResultOfGetFunctions":0,"Zend_JsonTest::testJsonWithPhpJsonExtension":0,"Zend_JsonTest::testJsonWithBuiltins":0.001,"Zend_JsonTest::testNull":0,"Zend_JsonTest::testBoolean":0,"Zend_JsonTest::testInteger":0,"Zend_JsonTest::testJsonPrettyPrintWorksWithArrayNotationInStringLiteral":0,"Zend_JsonTest::testFloat":0,"Zend_JsonTest::testString":0,"Zend_JsonTest::testString2":0,"Zend_JsonTest::testString3":0,"Zend_JsonTest::testString4":0,"Zend_JsonTest::testString5":0,"Zend_JsonTest::testArray":0,"Zend_JsonTest::testAssocArray":0,"Zend_JsonTest::testAssocArray2":0,"Zend_JsonTest::testAssocArray3":0,"Zend_JsonTest::testObject":0,"Zend_JsonTest::testObjectAsObject":0,"Zend_JsonTest::testDecodeArrayOfObjects":0,"Zend_JsonTest::testDecodeObjectOfArrays":0,"Zend_JsonTest::testEncodeReleaseNumber":0,"Zend_JsonTest::testEarlyLineBreak":0,"Zend_JsonTest::testZf504":0,"Zend_JsonTest::testZf461":0,"Zend_JsonTest::testZf4053":0,"Zend_JsonTest::testEncodeObject":0,"Zend_JsonTest::testEncodeClass":0,"Zend_JsonTest::testEncodeClasses":0,"Zend_JsonTest::testToJsonSerialization":0,"Zend_JsonTest::testEncodingArrayWithExpr":0,"Zend_JsonTest::testEncodingObjectWithExprAndInternalEncoder":0,"Zend_JsonTest::testEncodingObjectWithExprAndExtJson":0,"Zend_JsonTest::testToJsonWithExpr":0,"Zend_JsonTest::testEncodingMultipleNestedSwitchingSameNameKeysWithDifferentJsonExprSettings":0,"Zend_JsonTest::testEncodingMultipleNestedIteratedSameNameKeysWithDifferentJsonExprSettings":0,"Zend_JsonTest::testDisabledJsonExprFinder":0,"Zend_JsonTest::testEncodeWithUtf8IsTransformedToPackedSyntax":0,"Zend_JsonTest::testEncodeWithUtf8IsTransformedSolarRegression":0,"Zend_JsonTest::testEncodeUnicodeStringSolarRegression":0,"Zend_JsonTest::testDecodeUnicodeStringSolarRegression":0,"Zend_JsonTest::testEncodeWithUtf8IsTransformedSolarRegressionEqualsJsonExt":0,"Zend_JsonTest::testUtf8JsonExprFinder":0,"Zend_JsonTest::testKommaDecimalIsConvertedToCorrectJsonWithDot":0,"Zend_JsonTest::testEncodeObjectImplementingIterator":0,"Zend_JsonTest::testEncodeObjectImplementingIteratorAggregate":0,"Zend_JsonTest::testNativeJsonEncoderWillProperlyEncodeSolidusInStringValues":0,"Zend_JsonTest::testBuiltinJsonEncoderWillProperlyEncodeSolidusInStringValues":0,"Zend_JsonTest::testDecodingInvalidJsonShouldRaiseAnException":0,"Zend_JsonTest::testIteratorWithoutDefinedKey":0,"Zend_JsonTest::testEncoderEscapesNamespacedClassNamesProperly":0,"Zend_JsonTest::testJsonPrettyPrintWorksWithTxtOutputFormat":0,"Zend_JsonTest::testJsonPrettyPrintWorksWithHtmlOutputFormat":0,"Zend_JsonTest::testEncodeWillUseToArrayMethodWhenAvailable":0,"Zend_JsonTest::testEncodeWillUseToJsonWhenBothToJsonAndToArrayMethodsAreAvailable":0,"Zend_JsonTest::testWillEncodeArrayOfObjectsEachWithToJsonMethod":0,"Zend_JsonTest::testWillDecodeStructureWithEmptyKeyToObjectProperly":0}} \ No newline at end of file