From 2cab6a570748d23fcc39f62cf4424c34d1d8aeca Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sat, 2 Jan 2021 14:44:09 +0100 Subject: [PATCH] php min version 7.4 --- .travis.yml | 14 ++----- README.md | 4 +- composer.json | 26 +++++------- phpinsights.php | 8 ---- phpstan.neon | 3 -- src/Accessor/MethodAccessor.php | 5 +-- src/Accessor/PropertyAccessor.php | 9 +---- src/Encoder/Encoder.php | 2 +- src/Encoder/JsonTypeEncoder.php | 5 +-- src/Encoder/JsonxTypeEncoder.php | 5 +-- src/Encoder/XmlTypeEncoder.php | 5 +-- src/Link/Link.php | 9 ++--- src/Link/LinkBuilder.php | 9 ++--- .../CallableNormalizationObjectMapping.php | 5 +-- .../LazyNormalizationObjectMapping.php | 15 ++----- src/Mapping/NormalizationFieldMapping.php | 19 +++------ .../NormalizationFieldMappingBuilder.php | 10 +---- src/Mapping/NormalizationLinkMapping.php | 19 +++------ .../NormalizationLinkMappingBuilder.php | 10 +---- src/Normalizer/DateTimeFieldNormalizer.php | 10 +---- src/Normalizer/FieldNormalizer.php | 5 +-- src/Normalizer/LinkNormalizer.php | 5 +-- src/Normalizer/Normalizer.php | 12 ++---- src/Normalizer/NormalizerContext.php | 7 +--- src/Normalizer/NormalizerContextBuilder.php | 7 +--- .../NormalizerObjectMappingRegistry.php | 4 +- .../Relation/EmbedManyFieldNormalizer.php | 5 +-- .../Relation/EmbedOneFieldNormalizer.php | 5 +-- .../Relation/ReferenceManyFieldNormalizer.php | 10 +---- .../Relation/ReferenceOneFieldNormalizer.php | 10 +---- src/Policy/AndPolicy.php | 2 +- src/Policy/GroupPolicy.php | 2 +- src/Policy/NotPolicy.php | 5 +-- src/Policy/OrPolicy.php | 2 +- src/Serializer.php | 10 +---- .../SerializationServiceFactory.php | 36 ++++++----------- .../SerializationServiceProvider.php | 40 +++++++------------ tests/Integration/SerializerTest.php | 5 +-- tests/Resources/Mapping/ModelMapping.php | 21 ++++------ tests/Resources/Model/AbstractManyModel.php | 12 ++---- tests/Resources/Model/ManyModel.php | 5 +-- tests/Resources/Model/Model.php | 27 +++---------- tests/Resources/Model/OneModel.php | 12 ++---- tests/Unit/Accessor/MethodAccessorTest.php | 15 ++----- tests/Unit/Accessor/PropertyAccessorTest.php | 5 +-- ...CallableNormalizationObjectMappingTest.php | 32 ++++++--------- .../CallbackFieldNormalizerTest.php | 9 +---- .../Normalizer/CallbackLinkNormalizerTest.php | 16 +------- .../NormalizerObjectMappingRegistryTest.php | 5 +-- tests/Unit/Normalizer/NormalizerTest.php | 10 +---- .../Relation/EmbedManyFieldNormalizerTest.php | 10 +---- .../ReferenceManyFieldNormalizerTest.php | 10 +---- .../SerializationServiceFactoryTest.php | 4 +- 53 files changed, 147 insertions(+), 410 deletions(-) delete mode 100644 phpinsights.php diff --git a/.travis.yml b/.travis.yml index c5332dc..2a9327f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -dist: bionic +dist: focal language: php @@ -11,19 +11,13 @@ git: matrix: include: - - php: 7.2 - env: composerargs="--prefer-lowest" - - php: 7.2 - - php: 7.3 - env: composerargs="--prefer-lowest" - - php: 7.3 - php: 7.4 env: composerargs="--prefer-lowest" - php: 7.4 - - php: nightly +# - php: 8.0 +# env: composerargs="--prefer-lowest --ignore-platform-reqs" + - php: 8.0 env: composerargs="--ignore-platform-reqs" - allow_failures: - - php: nightly before_script: - (phpenv config-rm xdebug.ini || exit 0) diff --git a/README.md b/README.md index 5bd5b29..86ddc50 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ A simple serialization. ## Requirements - * php: ^7.2|^8.0 + * php: ^7.4|^8.0 * doctrine/inflector: ^1.0|^2.0 * psr/http-message: ^1.0.1 * psr/link: ^1.0 @@ -45,7 +45,7 @@ A simple serialization. Through [Composer](http://getcomposer.org) as [chubbyphp/chubbyphp-serialization][1]. ```sh -composer require chubbyphp/chubbyphp-serialization "^3.0" +composer require chubbyphp/chubbyphp-serialization "^3.1" ``` ## Usage diff --git a/composer.json b/composer.json index c7d58ba..5c43008 100644 --- a/composer.json +++ b/composer.json @@ -10,7 +10,7 @@ } ], "require": { - "php": "^7.2|^8.0", + "php": "^7.4|^8.0", "doctrine/inflector": "^1.0|^2.0", "psr/http-message": "^1.0.1", "psr/link": "^1.0", @@ -20,24 +20,20 @@ "chubbyphp/chubbyphp-container": "^1.1", "chubbyphp/chubbyphp-dev-helper": "dev-master", "chubbyphp/chubbyphp-laminas-config-factory": "^1.0", - "chubbyphp/chubbyphp-mock": "^1.4.5", + "chubbyphp/chubbyphp-mock": "^1.6", "doctrine/persistence": "^1.3|^2.0", - "friendsofphp/php-cs-fixer": "^2.16@dev", - "infection/infection": "^0.15.3|^0.16.6|^0.18.0", - "php-coveralls/php-coveralls": "^2.4.1", - "phploc/phploc": "^5.0|^6.0.2", - "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "^0.12.50", - "phpunit/phpunit": "^8.5.8|^9.4.1", + "infection/infection": "^0.20.2", + "php-coveralls/php-coveralls": "^2.4.3", + "phploc/phploc": "^6.0.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^0.12.64", + "phpunit/phpunit": "^9.5", "pimple/pimple": "^3.3", "psr/container": "^1.0", "symfony/config": "^3.4.42|^4.4.10|^5.0.10", "symfony/dependency-injection": "^3.4.42|^4.4.10|^5.0.10", "symfony/yaml": "^3.4.42|^4.4.10|^5.0.10" }, - "conflict": { - "composer/composer": "<1.10.16" - }, "autoload": { "psr-4": { "Chubbyphp\\Serialization\\": "src/" } }, @@ -49,7 +45,7 @@ }, "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "scripts": { @@ -61,12 +57,10 @@ "@test:infection", "@test:static-analysis", "@test:loc", - "@test:cs", - "@test:insights" + "@test:cs" ], "test:cs": "mkdir -p build && PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix --dry-run --stop-on-violation --cache-file=build/phpcs.cache", "test:infection": "vendor/bin/infection --threads=$(nproc) --min-msi=86 --verbose --coverage=build/phpunit", - "test:insights": "mkdir -p build && bash -c 'vendor/bin/phpinsights analyse -v --no-interaction --min-quality=94 --disable-security-check | tee build/phpinsights.log; if [ ${PIPESTATUS[0]} -ne \"0\" ]; then exit 1; fi'", "test:integration": "vendor/bin/phpunit --testsuite=Integration --cache-result-file=build/phpunit/result.cache", "test:lint": "mkdir -p build && find src tests -name '*.php' -print0 | xargs -0 -n1 -P$(nproc) php -l | tee build/phplint.log", "test:loc": "mkdir -p build && vendor/bin/phploc src --verbose | tee build/phploc.log", diff --git a/phpinsights.php b/phpinsights.php deleted file mode 100644 index d41f513..0000000 --- a/phpinsights.php +++ /dev/null @@ -1,8 +0,0 @@ -\|T of object, string given\./' - path: %currentWorkingDirectory%/src/Normalizer/NormalizerObjectMappingRegistry.php diff --git a/src/Accessor/MethodAccessor.php b/src/Accessor/MethodAccessor.php index 6b0f934..156dc6a 100644 --- a/src/Accessor/MethodAccessor.php +++ b/src/Accessor/MethodAccessor.php @@ -8,10 +8,7 @@ final class MethodAccessor implements AccessorInterface { - /** - * @var string - */ - private $property; + private string $property; public function __construct(string $property) { diff --git a/src/Accessor/PropertyAccessor.php b/src/Accessor/PropertyAccessor.php index 8ecb8e9..cfe3cfa 100644 --- a/src/Accessor/PropertyAccessor.php +++ b/src/Accessor/PropertyAccessor.php @@ -9,10 +9,7 @@ final class PropertyAccessor implements AccessorInterface { - /** - * @var string - */ - private $property; + private string $property; public function __construct(string $property) { @@ -31,9 +28,7 @@ public function getValue(object $object) } $getter = \Closure::bind( - function ($property) { - return $this->{$property}; - }, + fn ($property) => $this->{$property}, $object, $class ); diff --git a/src/Encoder/Encoder.php b/src/Encoder/Encoder.php index 8271d6d..e6a84a6 100644 --- a/src/Encoder/Encoder.php +++ b/src/Encoder/Encoder.php @@ -11,7 +11,7 @@ final class Encoder implements EncoderInterface /** * @var array */ - private $encoderTypes; + private array $encoderTypes; /** * @param array $encoderTypes diff --git a/src/Encoder/JsonTypeEncoder.php b/src/Encoder/JsonTypeEncoder.php index 0c9ba50..f183072 100644 --- a/src/Encoder/JsonTypeEncoder.php +++ b/src/Encoder/JsonTypeEncoder.php @@ -6,10 +6,7 @@ final class JsonTypeEncoder implements TypeEncoderInterface { - /** - * @var bool - */ - private $prettyPrint; + private bool $prettyPrint; public function __construct(bool $prettyPrint = false) { diff --git a/src/Encoder/JsonxTypeEncoder.php b/src/Encoder/JsonxTypeEncoder.php index c056fa3..cf03fc9 100644 --- a/src/Encoder/JsonxTypeEncoder.php +++ b/src/Encoder/JsonxTypeEncoder.php @@ -16,10 +16,7 @@ final class JsonxTypeEncoder implements TypeEncoderInterface public const DATATYPE_NUMBER = 'number'; public const DATATYPE_NULL = 'null'; - /** - * @var bool - */ - private $prettyPrint; + private bool $prettyPrint; public function __construct(bool $prettyPrint = false) { diff --git a/src/Encoder/XmlTypeEncoder.php b/src/Encoder/XmlTypeEncoder.php index 2600f1b..75a24ec 100644 --- a/src/Encoder/XmlTypeEncoder.php +++ b/src/Encoder/XmlTypeEncoder.php @@ -6,10 +6,7 @@ final class XmlTypeEncoder implements TypeEncoderInterface { - /** - * @var JsonxTypeEncoder - */ - private $jsonxTypeEncoder; + private JsonxTypeEncoder $jsonxTypeEncoder; public function __construct(bool $prettyPrint = false) { diff --git a/src/Link/Link.php b/src/Link/Link.php index eeccbdb..bc5bad9 100644 --- a/src/Link/Link.php +++ b/src/Link/Link.php @@ -8,20 +8,17 @@ final class Link implements LinkInterface { - /** - * @var string - */ - private $href; + private string $href; /** * @var array */ - private $rels; + private array $rels; /** * @var array */ - private $attributes; + private array $attributes; /** * @param array $rels diff --git a/src/Link/LinkBuilder.php b/src/Link/LinkBuilder.php index d0f9232..124bc70 100644 --- a/src/Link/LinkBuilder.php +++ b/src/Link/LinkBuilder.php @@ -8,20 +8,17 @@ final class LinkBuilder { - /** - * @var string - */ - private $href; + private ?string $href = null; /** * @var array */ - private $rels; + private ?array $rels = null; /** * @var array */ - private $attributes; + private ?array $attributes = null; private function __construct() { diff --git a/src/Mapping/CallableNormalizationObjectMapping.php b/src/Mapping/CallableNormalizationObjectMapping.php index 4e4553e..e11225b 100644 --- a/src/Mapping/CallableNormalizationObjectMapping.php +++ b/src/Mapping/CallableNormalizationObjectMapping.php @@ -6,10 +6,7 @@ final class CallableNormalizationObjectMapping implements NormalizationObjectMappingInterface { - /** - * @var string - */ - private $class; + private string $class; /** * @var callable diff --git a/src/Mapping/LazyNormalizationObjectMapping.php b/src/Mapping/LazyNormalizationObjectMapping.php index d6f30e1..b9075c8 100644 --- a/src/Mapping/LazyNormalizationObjectMapping.php +++ b/src/Mapping/LazyNormalizationObjectMapping.php @@ -8,20 +8,11 @@ final class LazyNormalizationObjectMapping implements NormalizationObjectMappingInterface { - /** - * @var ContainerInterface - */ - private $container; + private ContainerInterface $container; - /** - * @var string - */ - private $serviceId; + private string $serviceId; - /** - * @var string - */ - private $class; + private string $class; public function __construct(ContainerInterface $container, string $serviceId, string $class) { diff --git a/src/Mapping/NormalizationFieldMapping.php b/src/Mapping/NormalizationFieldMapping.php index 57c6dec..7ef5f3b 100644 --- a/src/Mapping/NormalizationFieldMapping.php +++ b/src/Mapping/NormalizationFieldMapping.php @@ -10,20 +10,11 @@ final class NormalizationFieldMapping implements NormalizationFieldMappingInterface { - /** - * @var string - */ - private $name; - - /** - * @var FieldNormalizerInterface - */ - private $fieldNormalizer; - - /** - * @var PolicyInterface - */ - private $policy; + private string $name; + + private FieldNormalizerInterface $fieldNormalizer; + + private PolicyInterface $policy; public function __construct( string $name, diff --git a/src/Mapping/NormalizationFieldMappingBuilder.php b/src/Mapping/NormalizationFieldMappingBuilder.php index bc913e6..2b036fa 100644 --- a/src/Mapping/NormalizationFieldMappingBuilder.php +++ b/src/Mapping/NormalizationFieldMappingBuilder.php @@ -18,20 +18,14 @@ final class NormalizationFieldMappingBuilder { - /** - * @var string - */ - private $name; + private string $name; /** * @var FieldNormalizerInterface|null */ private $fieldNormalizer; - /** - * @var PolicyInterface|null - */ - private $policy; + private ?PolicyInterface $policy = null; private function __construct(string $name) { diff --git a/src/Mapping/NormalizationLinkMapping.php b/src/Mapping/NormalizationLinkMapping.php index 5e74177..6d942d4 100644 --- a/src/Mapping/NormalizationLinkMapping.php +++ b/src/Mapping/NormalizationLinkMapping.php @@ -10,20 +10,11 @@ final class NormalizationLinkMapping implements NormalizationLinkMappingInterface { - /** - * @var string - */ - private $name; - - /** - * @var LinkNormalizerInterface - */ - private $linkNormalizer; - - /** - * @var PolicyInterface - */ - private $policy; + private string $name; + + private LinkNormalizerInterface $linkNormalizer; + + private PolicyInterface $policy; public function __construct( string $name, diff --git a/src/Mapping/NormalizationLinkMappingBuilder.php b/src/Mapping/NormalizationLinkMappingBuilder.php index d7f36cc..e0e42a1 100644 --- a/src/Mapping/NormalizationLinkMappingBuilder.php +++ b/src/Mapping/NormalizationLinkMappingBuilder.php @@ -13,20 +13,14 @@ final class NormalizationLinkMappingBuilder { - /** - * @var string - */ - private $name; + private string $name; /** * @var LinkNormalizerInterface */ private $linkNormalizer; - /** - * @var PolicyInterface|null - */ - private $policy; + private ?PolicyInterface $policy = null; private function __construct(string $name) { diff --git a/src/Normalizer/DateTimeFieldNormalizer.php b/src/Normalizer/DateTimeFieldNormalizer.php index deac268..7951aee 100644 --- a/src/Normalizer/DateTimeFieldNormalizer.php +++ b/src/Normalizer/DateTimeFieldNormalizer.php @@ -8,15 +8,9 @@ final class DateTimeFieldNormalizer implements FieldNormalizerInterface { - /** - * @var AccessorInterface - */ - private $accessor; + private AccessorInterface $accessor; - /** - * @var string - */ - private $format; + private string $format; public function __construct(AccessorInterface $accessor, string $format = 'c') { diff --git a/src/Normalizer/FieldNormalizer.php b/src/Normalizer/FieldNormalizer.php index 9ae4045..0a211f7 100644 --- a/src/Normalizer/FieldNormalizer.php +++ b/src/Normalizer/FieldNormalizer.php @@ -8,10 +8,7 @@ final class FieldNormalizer implements FieldNormalizerInterface { - /** - * @var AccessorInterface - */ - private $accessor; + private AccessorInterface $accessor; public function __construct(AccessorInterface $accessor) { diff --git a/src/Normalizer/LinkNormalizer.php b/src/Normalizer/LinkNormalizer.php index 1d5ca04..f1a2cd1 100644 --- a/src/Normalizer/LinkNormalizer.php +++ b/src/Normalizer/LinkNormalizer.php @@ -9,10 +9,7 @@ final class LinkNormalizer implements LinkNormalizerInterface { - /** - * @var LinkInterface - */ - private $link; + private LinkInterface $link; public function __construct(LinkInterface $link) { diff --git a/src/Normalizer/Normalizer.php b/src/Normalizer/Normalizer.php index 846499c..00bc078 100644 --- a/src/Normalizer/Normalizer.php +++ b/src/Normalizer/Normalizer.php @@ -13,15 +13,9 @@ final class Normalizer implements NormalizerInterface { - /** - * @var NormalizerObjectMappingRegistryInterface - */ - private $normalizerObjectMappingRegistry; + private NormalizerObjectMappingRegistryInterface $normalizerObjectMappingRegistry; - /** - * @var LoggerInterface - */ - private $logger; + private LoggerInterface $logger; public function __construct( NormalizerObjectMappingRegistryInterface $normalizerObjectMappingRegistry, @@ -41,7 +35,7 @@ public function normalize( ?NormalizerContextInterface $context = null, string $path = '' ): array { - $context = $context ?? NormalizerContextBuilder::create()->getContext(); + $context ??= NormalizerContextBuilder::create()->getContext(); $class = get_class($object); $objectMapping = $this->getObjectMapping($class); diff --git a/src/Normalizer/NormalizerContext.php b/src/Normalizer/NormalizerContext.php index 428c057..d34df28 100644 --- a/src/Normalizer/NormalizerContext.php +++ b/src/Normalizer/NormalizerContext.php @@ -8,15 +8,12 @@ final class NormalizerContext implements NormalizerContextInterface { - /** - * @var ServerRequestInterface|null - */ - private $request; + private ?ServerRequestInterface $request = null; /** * @var array */ - private $attributes; + private array $attributes; /** * @param array $attributes diff --git a/src/Normalizer/NormalizerContextBuilder.php b/src/Normalizer/NormalizerContextBuilder.php index 408e087..23f12c3 100644 --- a/src/Normalizer/NormalizerContextBuilder.php +++ b/src/Normalizer/NormalizerContextBuilder.php @@ -11,12 +11,9 @@ final class NormalizerContextBuilder /** * @var array */ - private $attributes = []; + private array $attributes = []; - /** - * @var ServerRequestInterface|null - */ - private $request; + private ?ServerRequestInterface $request = null; private function __construct() { diff --git a/src/Normalizer/NormalizerObjectMappingRegistry.php b/src/Normalizer/NormalizerObjectMappingRegistry.php index 7a3f161..a76ca14 100644 --- a/src/Normalizer/NormalizerObjectMappingRegistry.php +++ b/src/Normalizer/NormalizerObjectMappingRegistry.php @@ -12,7 +12,7 @@ final class NormalizerObjectMappingRegistry implements NormalizerObjectMappingRe /** * @var array */ - private $objectMappings; + private array $objectMappings; /** * @param array $objectMappings @@ -26,6 +26,8 @@ public function __construct(array $objectMappings) } /** + * @param class-string $class + * * @throws SerializerLogicException */ public function getObjectMapping(string $class): NormalizationObjectMappingInterface diff --git a/src/Normalizer/Relation/EmbedManyFieldNormalizer.php b/src/Normalizer/Relation/EmbedManyFieldNormalizer.php index e5238fb..9703c47 100644 --- a/src/Normalizer/Relation/EmbedManyFieldNormalizer.php +++ b/src/Normalizer/Relation/EmbedManyFieldNormalizer.php @@ -12,10 +12,7 @@ final class EmbedManyFieldNormalizer implements FieldNormalizerInterface { - /** - * @var AccessorInterface - */ - private $accessor; + private AccessorInterface $accessor; public function __construct(AccessorInterface $accessor) { diff --git a/src/Normalizer/Relation/EmbedOneFieldNormalizer.php b/src/Normalizer/Relation/EmbedOneFieldNormalizer.php index 5481477..ace7628 100644 --- a/src/Normalizer/Relation/EmbedOneFieldNormalizer.php +++ b/src/Normalizer/Relation/EmbedOneFieldNormalizer.php @@ -12,10 +12,7 @@ final class EmbedOneFieldNormalizer implements FieldNormalizerInterface { - /** - * @var AccessorInterface - */ - private $accessor; + private AccessorInterface $accessor; public function __construct(AccessorInterface $accessor) { diff --git a/src/Normalizer/Relation/ReferenceManyFieldNormalizer.php b/src/Normalizer/Relation/ReferenceManyFieldNormalizer.php index a30c513..566bc84 100644 --- a/src/Normalizer/Relation/ReferenceManyFieldNormalizer.php +++ b/src/Normalizer/Relation/ReferenceManyFieldNormalizer.php @@ -12,15 +12,9 @@ final class ReferenceManyFieldNormalizer implements FieldNormalizerInterface { - /** - * @var AccessorInterface - */ - private $identifierAccessor; + private AccessorInterface $identifierAccessor; - /** - * @var AccessorInterface - */ - private $accessor; + private AccessorInterface $accessor; public function __construct(AccessorInterface $identifierAccessor, AccessorInterface $accessor) { diff --git a/src/Normalizer/Relation/ReferenceOneFieldNormalizer.php b/src/Normalizer/Relation/ReferenceOneFieldNormalizer.php index 991bc49..8388ab5 100644 --- a/src/Normalizer/Relation/ReferenceOneFieldNormalizer.php +++ b/src/Normalizer/Relation/ReferenceOneFieldNormalizer.php @@ -12,15 +12,9 @@ final class ReferenceOneFieldNormalizer implements FieldNormalizerInterface { - /** - * @var AccessorInterface - */ - private $identifierAccessor; + private AccessorInterface $identifierAccessor; - /** - * @var AccessorInterface - */ - private $accessor; + private AccessorInterface $accessor; public function __construct(AccessorInterface $identifierAccessor, AccessorInterface $accessor) { diff --git a/src/Policy/AndPolicy.php b/src/Policy/AndPolicy.php index 0b185a6..fe5540c 100644 --- a/src/Policy/AndPolicy.php +++ b/src/Policy/AndPolicy.php @@ -11,7 +11,7 @@ final class AndPolicy implements PolicyInterface /** * @var array */ - private $policies; + private array $policies; /** * @param array $policies diff --git a/src/Policy/GroupPolicy.php b/src/Policy/GroupPolicy.php index c49f198..fc35865 100644 --- a/src/Policy/GroupPolicy.php +++ b/src/Policy/GroupPolicy.php @@ -15,7 +15,7 @@ final class GroupPolicy implements PolicyInterface /** * @var array */ - private $groups; + private array $groups; /** * @param array $groups diff --git a/src/Policy/NotPolicy.php b/src/Policy/NotPolicy.php index a3c942f..1722929 100644 --- a/src/Policy/NotPolicy.php +++ b/src/Policy/NotPolicy.php @@ -8,10 +8,7 @@ final class NotPolicy implements PolicyInterface { - /** - * @var PolicyInterface - */ - private $policy; + private PolicyInterface $policy; public function __construct(PolicyInterface $policy) { diff --git a/src/Policy/OrPolicy.php b/src/Policy/OrPolicy.php index cbcb792..5fe19a9 100644 --- a/src/Policy/OrPolicy.php +++ b/src/Policy/OrPolicy.php @@ -11,7 +11,7 @@ final class OrPolicy implements PolicyInterface /** * @var array */ - private $policies; + private array $policies; /** * @param array $policies diff --git a/src/Serializer.php b/src/Serializer.php index 1d7f8b3..c3cc798 100644 --- a/src/Serializer.php +++ b/src/Serializer.php @@ -10,15 +10,9 @@ final class Serializer implements SerializerInterface { - /** - * @var NormalizerInterface - */ - private $normalizer; + private NormalizerInterface $normalizer; - /** - * @var EncoderInterface - */ - private $encoder; + private EncoderInterface $encoder; public function __construct(NormalizerInterface $normalizer, EncoderInterface $encoder) { diff --git a/src/ServiceFactory/SerializationServiceFactory.php b/src/ServiceFactory/SerializationServiceFactory.php index 58d3d91..5ba649a 100644 --- a/src/ServiceFactory/SerializationServiceFactory.php +++ b/src/ServiceFactory/SerializationServiceFactory.php @@ -18,30 +18,18 @@ final class SerializationServiceFactory public function __invoke(): array { return [ - 'serializer' => static function (ContainerInterface $container) { - return new Serializer( - $container->get('serializer.normalizer'), - $container->get('serializer.encoder') - ); - }, - 'serializer.normalizer' => static function (ContainerInterface $container) { - return new Normalizer( - $container->get('serializer.normalizer.objectmappingregistry'), - $container->has('logger') ? $container->get('logger') : null - ); - }, - 'serializer.normalizer.objectmappingregistry' => static function (ContainerInterface $container) { - return new NormalizerObjectMappingRegistry($container->get('serializer.normalizer.objectmappings')); - }, - 'serializer.normalizer.objectmappings' => static function () { - return []; - }, - 'serializer.encoder' => static function (ContainerInterface $container) { - return new Encoder($container->get('serializer.encodertypes')); - }, - 'serializer.encodertypes' => static function () { - return []; - }, + 'serializer' => static fn (ContainerInterface $container) => new Serializer( + $container->get('serializer.normalizer'), + $container->get('serializer.encoder') + ), + 'serializer.normalizer' => static fn (ContainerInterface $container) => new Normalizer( + $container->get('serializer.normalizer.objectmappingregistry'), + $container->has('logger') ? $container->get('logger') : null + ), + 'serializer.normalizer.objectmappingregistry' => static fn (ContainerInterface $container) => new NormalizerObjectMappingRegistry($container->get('serializer.normalizer.objectmappings')), + 'serializer.normalizer.objectmappings' => static fn () => [], + 'serializer.encoder' => static fn (ContainerInterface $container) => new Encoder($container->get('serializer.encodertypes')), + 'serializer.encodertypes' => static fn () => [], ]; } } diff --git a/src/ServiceProvider/SerializationServiceProvider.php b/src/ServiceProvider/SerializationServiceProvider.php index c50ffc0..52e3967 100644 --- a/src/ServiceProvider/SerializationServiceProvider.php +++ b/src/ServiceProvider/SerializationServiceProvider.php @@ -15,31 +15,19 @@ final class SerializationServiceProvider implements ServiceProviderInterface { public function register(Container $container): void { - $container['serializer'] = static function () use ($container) { - return new Serializer($container['serializer.normalizer'], $container['serializer.encoder']); - }; - - $container['serializer.normalizer'] = static function () use ($container) { - return new Normalizer( - $container['serializer.normalizer.objectmappingregistry'], - $container['logger'] ?? null - ); - }; - - $container['serializer.normalizer.objectmappingregistry'] = static function () use ($container) { - return new NormalizerObjectMappingRegistry($container['serializer.normalizer.objectmappings']); - }; - - $container['serializer.normalizer.objectmappings'] = static function () { - return []; - }; - - $container['serializer.encoder'] = static function () use ($container) { - return new Encoder($container['serializer.encodertypes']); - }; - - $container['serializer.encodertypes'] = static function () { - return []; - }; + $container['serializer'] = static fn () => new Serializer($container['serializer.normalizer'], $container['serializer.encoder']); + + $container['serializer.normalizer'] = static fn () => new Normalizer( + $container['serializer.normalizer.objectmappingregistry'], + $container['logger'] ?? null + ); + + $container['serializer.normalizer.objectmappingregistry'] = static fn () => new NormalizerObjectMappingRegistry($container['serializer.normalizer.objectmappings']); + + $container['serializer.normalizer.objectmappings'] = static fn () => []; + + $container['serializer.encoder'] = static fn () => new Encoder($container['serializer.encodertypes']); + + $container['serializer.encodertypes'] = static fn () => []; } } diff --git a/tests/Integration/SerializerTest.php b/tests/Integration/SerializerTest.php index 94f24df..cdbdb1c 100644 --- a/tests/Integration/SerializerTest.php +++ b/tests/Integration/SerializerTest.php @@ -302,10 +302,7 @@ public function testSerializeWithoutObjectMapping(): void private function getLogger() { return new class() extends AbstractLogger { - /** - * @var array - */ - private $entries = []; + private array $entries = []; public function log($level, $message, array $context = []): void { diff --git a/tests/Resources/Mapping/ModelMapping.php b/tests/Resources/Mapping/ModelMapping.php index 0a10851..b014d30 100644 --- a/tests/Resources/Mapping/ModelMapping.php +++ b/tests/Resources/Mapping/ModelMapping.php @@ -40,9 +40,7 @@ public function getNormalizationFieldMappings(string $path, string $type = null) ->setPolicy(new AndPolicy([ new NullPolicy(), new OrPolicy([ - new CallbackPolicy(function () { - return false; - }), + new CallbackPolicy(fn () => false), new NullPolicy(), ]), ])) @@ -57,9 +55,7 @@ public function getNormalizationFieldMappings(string $path, string $type = null) ->setPolicy(new AndPolicy([ new NullPolicy(), new OrPolicy([ - new CallbackPolicy(function () { - return false; - }), + new CallbackPolicy(fn () => false), ]), ])) ->getMapping(), @@ -85,14 +81,11 @@ public function getNormalizationLinkMappings(string $path): array new NormalizationLinkMapping( 'self', new CallbackLinkNormalizer( - function (string $path, Model $model) { - return LinkBuilder::create('/api/model/'.$model->getId()) - ->setAttributes([ - 'method' => 'GET', - ]) - ->getLink() - ; - } + fn (string $path, Model $model) => LinkBuilder::create('/api/model/'.$model->getId()) + ->setAttributes([ + 'method' => 'GET', + ]) + ->getLink() ) ), ]; diff --git a/tests/Resources/Model/AbstractManyModel.php b/tests/Resources/Model/AbstractManyModel.php index 4b561f1..89a11f2 100644 --- a/tests/Resources/Model/AbstractManyModel.php +++ b/tests/Resources/Model/AbstractManyModel.php @@ -6,15 +6,9 @@ abstract class AbstractManyModel { - /** - * @var string - */ - protected $name; - - /** - * @var string - */ - private $address; + protected ?string $name = null; + + private ?string $address = null; public function getName(): string { diff --git a/tests/Resources/Model/ManyModel.php b/tests/Resources/Model/ManyModel.php index fcfff97..9ada862 100644 --- a/tests/Resources/Model/ManyModel.php +++ b/tests/Resources/Model/ManyModel.php @@ -6,10 +6,7 @@ final class ManyModel extends AbstractManyModel { - /** - * @var string - */ - private $value; + private ?string $value = null; public function getValue(): string { diff --git a/tests/Resources/Model/Model.php b/tests/Resources/Model/Model.php index a5c8506..c2ede01 100644 --- a/tests/Resources/Model/Model.php +++ b/tests/Resources/Model/Model.php @@ -6,35 +6,20 @@ final class Model { - /** - * @var string - */ - private $id; + private string $id; - /** - * @var string - */ - private $name; + private ?string $name = null; - /** - * @var string - */ - private $additionalInfo; + private ?string $additionalInfo = null; - /** - * @var string - */ - private $hiddenProperty; + private string $hiddenProperty; - /** - * @var OneModel|null - */ - private $one; + private ?OneModel $one = null; /** * @var AbstractManyModel[] */ - private $manies; + private ?array $manies = null; public function __construct() { diff --git a/tests/Resources/Model/OneModel.php b/tests/Resources/Model/OneModel.php index 8bb853f..230fd05 100644 --- a/tests/Resources/Model/OneModel.php +++ b/tests/Resources/Model/OneModel.php @@ -6,15 +6,9 @@ final class OneModel { - /** - * @var string - */ - private $name; - - /** - * @var string - */ - private $value; + private ?string $name = null; + + private ?string $value = null; public function getName(): string { diff --git a/tests/Unit/Accessor/MethodAccessorTest.php b/tests/Unit/Accessor/MethodAccessorTest.php index 17bac4c..b1d09aa 100644 --- a/tests/Unit/Accessor/MethodAccessorTest.php +++ b/tests/Unit/Accessor/MethodAccessorTest.php @@ -18,10 +18,7 @@ final class MethodAccessorTest extends TestCase public function testGetValue(): void { $object = new class() { - /** - * @var string - */ - private $name; + private ?string $name = null; public function getName(): string { @@ -44,10 +41,7 @@ public function setName(string $name): void public function testHasValue(): void { $object = new class() { - /** - * @var string - */ - private $name; + private ?string $name = null; public function hasName(): bool { @@ -70,10 +64,7 @@ public function setName(string $name): void public function testIsValue(): void { $object = new class() { - /** - * @var string - */ - private $name; + private ?string $name = null; public function isName(): bool { diff --git a/tests/Unit/Accessor/PropertyAccessorTest.php b/tests/Unit/Accessor/PropertyAccessorTest.php index 60516eb..f02875c 100644 --- a/tests/Unit/Accessor/PropertyAccessorTest.php +++ b/tests/Unit/Accessor/PropertyAccessorTest.php @@ -64,10 +64,7 @@ public function testMissingGet(): void class Model { - /** - * @var string - */ - protected $name; + protected ?string $name = null; public function setName(string $name): void { diff --git a/tests/Unit/Mapping/CallableNormalizationObjectMappingTest.php b/tests/Unit/Mapping/CallableNormalizationObjectMappingTest.php index 37500a6..02ff5bf 100644 --- a/tests/Unit/Mapping/CallableNormalizationObjectMappingTest.php +++ b/tests/Unit/Mapping/CallableNormalizationObjectMappingTest.php @@ -30,11 +30,9 @@ public function testGetClass(): void public function testGetNormalizationType(): void { - $mapping = new CallableNormalizationObjectMapping(\stdClass::class, function () { - return $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ - Call::create('getNormalizationType')->with()->willReturn('type'), - ]); - }); + $mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ + Call::create('getNormalizationType')->with()->willReturn('type'), + ])); self::assertSame('type', $mapping->getNormalizationType()); } @@ -43,11 +41,9 @@ public function testGetNormalizationFieldMappings(): void { $fieldMapping = $this->getMockByCalls(NormalizationFieldMappingInterface::class); - $mapping = new CallableNormalizationObjectMapping(\stdClass::class, function () use ($fieldMapping) { - return $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ - Call::create('getNormalizationFieldMappings')->with('path')->willReturn([$fieldMapping]), - ]); - }); + $mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ + Call::create('getNormalizationFieldMappings')->with('path')->willReturn([$fieldMapping]), + ])); self::assertSame($fieldMapping, $mapping->getNormalizationFieldMappings('path')[0]); } @@ -56,11 +52,9 @@ public function testGetNormalizationEmbeddedFieldMappings(): void { $fieldMapping = $this->getMockByCalls(NormalizationFieldMappingInterface::class); - $mapping = new CallableNormalizationObjectMapping(\stdClass::class, function () use ($fieldMapping) { - return $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ - Call::create('getNormalizationEmbeddedFieldMappings')->with('path')->willReturn([$fieldMapping]), - ]); - }); + $mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ + Call::create('getNormalizationEmbeddedFieldMappings')->with('path')->willReturn([$fieldMapping]), + ])); self::assertSame($fieldMapping, $mapping->getNormalizationEmbeddedFieldMappings('path')[0]); } @@ -69,11 +63,9 @@ public function testGetNormalizationLinkMappings(): void { $linkMapping = $this->getMockByCalls(NormalizationLinkMappingInterface::class); - $mapping = new CallableNormalizationObjectMapping(\stdClass::class, function () use ($linkMapping) { - return $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ - Call::create('getNormalizationLinkMappings')->with('path')->willReturn([$linkMapping]), - ]); - }); + $mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [ + Call::create('getNormalizationLinkMappings')->with('path')->willReturn([$linkMapping]), + ])); self::assertSame($linkMapping, $mapping->getNormalizationLinkMappings('path')[0]); } diff --git a/tests/Unit/Normalizer/CallbackFieldNormalizerTest.php b/tests/Unit/Normalizer/CallbackFieldNormalizerTest.php index b9ffcd1..cf94c18 100644 --- a/tests/Unit/Normalizer/CallbackFieldNormalizerTest.php +++ b/tests/Unit/Normalizer/CallbackFieldNormalizerTest.php @@ -28,14 +28,7 @@ public function testNormalizeField(): void $object = new \stdClass(); $fieldNormalizer = new CallbackFieldNormalizer( - function ( - string $path, - $object, - NormalizerContextInterface $context, - NormalizerInterface $normalizer = null - ) { - return 'name'; - } + fn (string $path, $object, NormalizerContextInterface $context, NormalizerInterface $normalizer = null) => 'name' ); self::assertSame('name', $fieldNormalizer->normalizeField('name', $object, $normalizerContext)); diff --git a/tests/Unit/Normalizer/CallbackLinkNormalizerTest.php b/tests/Unit/Normalizer/CallbackLinkNormalizerTest.php index 021b36e..9441318 100644 --- a/tests/Unit/Normalizer/CallbackLinkNormalizerTest.php +++ b/tests/Unit/Normalizer/CallbackLinkNormalizerTest.php @@ -38,13 +38,7 @@ public function testNormalizeLink(): void $normalizerContext = $this->getMockByCalls(NormalizerContextInterface::class); $linkNormalizer = new CallbackLinkNormalizer( - function ( - string $path, - $object, - NormalizerContextInterface $context - ) use ($link) { - return $link; - } + fn (string $path, $object, NormalizerContextInterface $context) => $link ); self::assertEquals( @@ -75,13 +69,7 @@ public function testNormalizeLinkWithWrongDataType(): void $normalizerContext = $this->getMockByCalls(NormalizerContextInterface::class); $linkNormalizer = new CallbackLinkNormalizer( - function ( - string $path, - $object, - NormalizerContextInterface $context - ) { - return 'test'; - } + fn (string $path, $object, NormalizerContextInterface $context) => 'test' ); $linkNormalizer->normalizeLink('name', $object, $normalizerContext); diff --git a/tests/Unit/Normalizer/NormalizerObjectMappingRegistryTest.php b/tests/Unit/Normalizer/NormalizerObjectMappingRegistryTest.php index 15dd885..cfc343e 100644 --- a/tests/Unit/Normalizer/NormalizerObjectMappingRegistryTest.php +++ b/tests/Unit/Normalizer/NormalizerObjectMappingRegistryTest.php @@ -78,10 +78,7 @@ private function getNormalizationObjectMapping(): NormalizationObjectMappingInte private function getObject() { return new class() { - /** - * @var string - */ - private $name; + private ?string $name = null; /** * @return string|null diff --git a/tests/Unit/Normalizer/NormalizerTest.php b/tests/Unit/Normalizer/NormalizerTest.php index 5d29f0f..de2e6d9 100644 --- a/tests/Unit/Normalizer/NormalizerTest.php +++ b/tests/Unit/Normalizer/NormalizerTest.php @@ -236,15 +236,9 @@ public function testNormalizeMissingMapping(): void private function getObject() { return new class() { - /** - * @var string - */ - private $id = 'id1'; + private string $id = 'id1'; - /** - * @var string - */ - private $name; + private ?string $name = null; public function getId(): string { diff --git a/tests/Unit/Normalizer/Relation/EmbedManyFieldNormalizerTest.php b/tests/Unit/Normalizer/Relation/EmbedManyFieldNormalizerTest.php index 9c610f1..fd2bc22 100644 --- a/tests/Unit/Normalizer/Relation/EmbedManyFieldNormalizerTest.php +++ b/tests/Unit/Normalizer/Relation/EmbedManyFieldNormalizerTest.php @@ -143,10 +143,7 @@ public function testNormalizeNull(): void private function getParent() { return new class() { - /** - * @var array|null - */ - private $children; + private ?array $children = null; /** * @return array @@ -171,10 +168,7 @@ public function setChildren(array $children = null): self private function getChild() { return new class() { - /** - * @var string - */ - private $name; + private ?string $name = null; public function getName(): string { diff --git a/tests/Unit/Normalizer/Relation/ReferenceManyFieldNormalizerTest.php b/tests/Unit/Normalizer/Relation/ReferenceManyFieldNormalizerTest.php index 6a2ffe5..ea96cb6 100644 --- a/tests/Unit/Normalizer/Relation/ReferenceManyFieldNormalizerTest.php +++ b/tests/Unit/Normalizer/Relation/ReferenceManyFieldNormalizerTest.php @@ -115,10 +115,7 @@ public function testNormalizeNull(): void private function getParent() { return new class() { - /** - * @var array|null - */ - private $children; + private ?array $children = null; /** * @return array @@ -143,10 +140,7 @@ public function setChildren(array $children = null): self private function getChild(string $id = null) { return new class($id ?? uniqid()) { - /** - * @var string - */ - private $id; + private string $id; public function __construct(string $id) { diff --git a/tests/Unit/ServiceFactory/SerializationServiceFactoryTest.php b/tests/Unit/ServiceFactory/SerializationServiceFactoryTest.php index 5648bf4..0258a2d 100644 --- a/tests/Unit/ServiceFactory/SerializationServiceFactoryTest.php +++ b/tests/Unit/ServiceFactory/SerializationServiceFactoryTest.php @@ -67,9 +67,7 @@ public function testRegisterWithDefinedLogger(): void $logger = $this->getMockByCalls(LoggerInterface::class); $container = new Container([ - 'logger' => static function () use ($logger) { - return $logger; - }, + 'logger' => static fn () => $logger, ]); $container->factories((new SerializationServiceFactory())());